Advanced읽기 시간: 10분최근 수정: 2026. 4. 14

거울 기능 사용 가이드

VIVEN SDK 의 Mirror Surface / Mirror Renderer 로 VR 에서 사실적인 반사 효과를 구현합니다. 플랫폼별 자동 최적화, Child Surface 그룹화, Custom Skybox 까지.

VIVEN SDK 의 거울 기능으로 VR 환경에서 사실적인 반사 효과를 구현할 수 있습니다. 두 개의 컴포넌트 — SDKMirrorSurfaceComponent (표면) 와 SDKMirrorRendererComponent (렌더러) — 를 조합해 사용합니다.

기본 사용법

1. 거울 생성

미러 표면

미러 렌더러

연결

SDKMirrorSurfaceComponent

SDKMirrorSurfaceComponent 인스펙터 - Surface/Distance/Reflection 설정

Surface Settings

Distance & Fade

Reflection Behavior

Advanced

SDKMirrorRendererComponent

SDKMirrorRendererComponent 인스펙터 - Optimization/Quality/Rendering 설정

Surface Connections

Optimization Mode

Mirror Quality (Custom 모드)

Rendering Settings

Environment

플랫폼별 권장 설정

플랫폼RecursionsAnti-AliasingScreen Scale FactorFrame Skip
📱 모바일≤ 3None≤ 0.5≥ 2
🥽 VR≤ 2Low0.5≥ 1
🖥️ 데스크탑제한 없음≤ Medium0.5 ~ 1.0

Auto 모드는 위 제한을 자동으로 적용합니다. 추가로 모바일·VR 에서는 Disable Pixel Lights 가 자동 활성화됩니다.

Lua 스크립팅

-- 미러 표면 제어
local surface = gameObject:GetComponent("SDKMirrorSurfaceComponent")
if surface ~= nil then
  surface.FadeColor = Color.red
  surface.MaxRenderingDistance = 15.0
  surface.FadeDistance = 0.7
  surface.MaxBlend = 0.8
  surface.UseRecursiveDarkening = true
  surface.ClippingPlaneOffset = 0.1
  surface.MaterialIndex = 0
end

-- 미러 렌더러 제어
local renderer = gameObject:GetComponent("SDKMirrorRendererComponent")
if renderer ~= nil then
  renderer.optimizationMode = OptimizationMode.Auto

  if renderer.optimizationMode == OptimizationMode.Custom then
    renderer.Recursions = 2
    renderer.ScreenScaleFactor = 0.5
    renderer.AntiAliasingLevel = 2
    renderer.FrameSkip = 1
    renderer.TextureSize = Vector2Int(512, 512)
    renderer.DisablePixelLights = true
    renderer.RenderShadows = false
    renderer.RenderPostProcessing = false
    renderer.UseOcclusionCulling = true
    renderer.RenderingEnabled = true
  end
end

Child Surfaces

여러 거울을 그룹화하여 부모가 하위 미러를 통합 관리 → 성능 최적화에 유리합니다.

문제 해결

⚡ 성능 저하 시

  1. Optimization ModeAuto 로 설정
  2. Recursions 값 낮추기 (모바일 ≤ 3, VR ≤ 2)
  3. Screen Scale Factor 줄이기 (0.5 권장)
  4. Frame Skip 늘리기 (모바일 2+, VR 1+)
  5. Render Layers 에서 불필요한 레이어 제외
  6. Render Shadows / Post Processing 비활성화
  7. Disable Pixel Lights 활성화

👻 거울이 보이지 않을 때

  1. Material 이 올바른 셰이더인지 확인
  2. MeshRenderer 연결 여부 확인
  3. Mirror Surfaces 에 Surface 가 추가되어 있는지 확인
  4. Auto 모드 제한으로 RenderingEnabled 가 false 가 된 건 아닌지 확인

주요 API

SDKMirrorSurfaceComponent 프로퍼티

Material, MaterialIndex, MyMeshRenderer, MyForwardTransform, MaxRenderingDistance, FadeDistance, FadeColor, MaxBlend, UseRecursiveDarkening, ClippingPlaneOffset, ChildSurfaces, MirrorSurface(읽기 전용)

SDKMirrorRendererComponent 프로퍼티

MirrorSurfaces, optimizationMode, Recursions, ScreenScaleFactor, AntiAliasingLevel, RenderingEnabled, FrameSkip, TextureSize, DisablePixelLights, RenderLayers, RenderShadows, RenderPostProcessing, CustomSkybox, UseOcclusionCulling

SDKMirrorRendererComponent 메서드

OptimizationMode

public enum OptimizationMode {
  Auto,    // 플랫폼 감지 기반 자동 최적화
  Custom   // 사용자 직접 설정
}