거울 기능 사용 가이드
VIVEN SDK 의 Mirror Surface / Mirror Renderer 로 VR 에서 사실적인 반사 효과를 구현합니다. 플랫폼별 자동 최적화, Child Surface 그룹화, Custom Skybox 까지.
VIVEN SDK 의 거울 기능으로 VR 환경에서 사실적인 반사 효과를 구현할 수 있습니다. 두 개의 컴포넌트 — SDKMirrorSurfaceComponent (표면) 와 SDKMirrorRendererComponent (렌더러) — 를 조합해 사용합니다.
기본 사용법
1. 거울 생성
미러 표면
- Hierarchy 에서 미러로 사용할 GameObject (Plane, Quad 등) 선택
Add Component → VivenSDK → Mirror → SDKMirrorSurfaceComponent
미러 렌더러
- 새 GameObject 또는 기존 GameObject 선택
Add Component → VivenSDK → Mirror → SDKMirrorRendererComponent
연결
- Renderer 의
Mirror Surfaces에 위에서 만든 Surface 를 추가
SDKMirrorSurfaceComponent

Surface Settings
- Material — 미러 표면 재질. 비워두면 기본 셰이더가 자동 생성됨
- Material Index — MeshRenderer 재질 배열 인덱스 (0=첫 번째)
- Mesh Renderer — 미러를 렌더링할 MeshRenderer (비워두면 자동)
- Forward Transform — 앞면 방향 Transform (Z축이 정면)
Distance & Fade
- Max Rendering Distance — 최대 렌더링 거리 (기본 10.0)
- Fade Distance — 페이드 시작 거리 비율 0~1 (기본 0.5)
- Fade Color — 멀어질 때 적용되는 페이드 색상 (기본 검정)
- Max Blend — 가까운 거리의 반사 강도 0~1 (기본 1.0)
Reflection Behavior
- Use Recursive Darkening — 재귀 반사 시 점차 어두워지는 효과
Advanced
- Clipping Plane Offset — 클리핑 평면 오프셋 (기본 0)
- Child Surfaces — 성능 최적화를 위한 하위 미러 표면들
SDKMirrorRendererComponent

Surface Connections
- Mirror Surfaces — 렌더링할 표면 목록 (비워두면 자동 감지)
Optimization Mode
- Auto — 플랫폼 감지 기반 자동 최적화 (권장)
- Custom — 사용자 직접 설정
Mirror Quality (Custom 모드)
- Recursions — 미러 상호 렌더링 깊이 (기본 2)
- Screen Scale Factor — 텍스처 해상도 비율 0.1~1.0 (기본 0.5)
- Anti-Aliasing Level — 1=None, 2=Low, 4=Medium, 8=High
- Rendering Enabled — 활성화 여부
- Frame Skip — 프레임 스킵 수 (기본 0)
- Texture Size — 렌더 텍스처 크기 (VR 모드에서는 16배수로 자동 조정)
- Disable Pixel Lights — 픽셀 라이트 비활성화
Rendering Settings
- Render Layers — 반사될 레이어 선택 (UI/이펙트 제외 권장)
- Render Shadows — 그림자 렌더링
- Render Post Processing — 포스트 프로세싱 적용
Environment
- Custom Skybox — 미러 전용 스카이박스 (마법 거울 효과 등)
- Use Occlusion Culling — 오클루전 컬링
플랫폼별 권장 설정
| 플랫폼 | Recursions | Anti-Aliasing | Screen Scale Factor | Frame Skip |
|---|---|---|---|---|
| 📱 모바일 | ≤ 3 | None | ≤ 0.5 | ≥ 2 |
| 🥽 VR | ≤ 2 | Low | 0.5 | ≥ 1 |
| 🖥️ 데스크탑 | 제한 없음 | ≤ Medium | 0.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
여러 거울을 그룹화하여 부모가 하위 미러를 통합 관리 → 성능 최적화에 유리합니다.
문제 해결
⚡ 성능 저하 시
- Optimization Mode 를
Auto로 설정 - Recursions 값 낮추기 (모바일 ≤ 3, VR ≤ 2)
- Screen Scale Factor 줄이기 (0.5 권장)
- Frame Skip 늘리기 (모바일 2+, VR 1+)
- Render Layers 에서 불필요한 레이어 제외
- Render Shadows / Post Processing 비활성화
- Disable Pixel Lights 활성화
👻 거울이 보이지 않을 때
- Material 이 올바른 셰이더인지 확인
- MeshRenderer 연결 여부 확인
- Mirror Surfaces 에 Surface 가 추가되어 있는지 확인
- 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 메서드
ApplySettings()— 설정 적용ApplyPlatformOptimization()— 플랫폼별 최적화 적용DetectAndApplyPlatformSettings()— 플랫폼 감지 후 적용
OptimizationMode
public enum OptimizationMode {
Auto, // 플랫폼 감지 기반 자동 최적화
Custom // 사용자 직접 설정
}