# NiloToon Environment + PIDI Planar Reflections 5 통합 사용법 ## 개요 이 패치는 NiloToon Environment 셰이더에 PIDI Planar Reflections 5의 실시간 반사 기능을 통합합니다. ## 설치 및 설정 ### 1. 기본 설정 1. `Tools > NiloToon > Create Planar Reflection Bridge` 메뉴를 사용하여 브리지 오브젝트를 생성합니다. 2. 생성된 오브젝트를 반사면이 될 위치에 배치합니다. (예: 바닥, 물 표면) 3. Transform의 Y축(up)이 반사면의 법선 방향을 향하도록 조정합니다. ### 2. NiloToonPlanarReflectionBridge 컴포넌트 설정 #### Reflection Control - **Reflection Intensity**: 반사 강도 (0~1) - **Reflection Tint Color**: 반사 색상 틴트 - **Fresnel Power**: 프레넬 효과 강도 (0.1~5) - **Distortion Strength**: 반사 왜곡 강도 (0~0.1) - **Depth Fade**: 깊이 페이드 효과 (0~10) - **Blur Radius**: 반사 블러 반경 (0~2) #### Advanced - **Enable Reflection**: 반사 효과 활성화/비활성화 - **Use Depth Fade**: 깊이 기반 페이드 사용 - **Reflection Layers**: 반사에 포함할 레이어 ### 3. PlanarReflectionRenderer 설정 기본 PIDI Planar Reflections 5 설정: - **Reflect Layers**: 반사될 오브젝트의 레이어 마스크 - **Output Resolution Multiplier**: 반사 텍스처 해상도 배율 - **Reflection Framerate**: 반사 업데이트 프레임레이트 (0 = 매 프레임) - **Render Shadows**: 반사에 그림자 포함 여부 ## 사용 방법 ### Unity Inspector에서 직접 설정 (권장) 1. **NiloToon Environment 셰이더**를 사용하는 재질을 선택합니다. 2. Inspector에서 **"Planar Reflection"** 섹션을 펼칩니다. 3. **"Enable Reflection"** 체크박스를 활성화합니다. 4. **"Auto-Setup Planar Reflection"** 버튼을 클릭하여 자동 설정합니다. 5. 반사 설정을 조절합니다: - **Intensity**: 반사 강도 - **Tint Color**: 반사 색상 틴트 - **Fresnel Power**: 프레넬 효과 강도 - **Distortion**: 반사 왜곡 - **Depth Fade**: 깊이 페이드 - **Blur Radius**: 블러 반경 ### 스크립트를 통한 설정 특정 재질에만 적용하려면: ```csharp NiloToonPlanarReflectionBridge bridge = FindObjectOfType(); bridge.ApplyToMaterial(yourMaterial); ``` ### 모든 재질에 적용 ```csharp bridge.ApplyToAllNiloToonMaterials(); ``` ## 셰이더 수정 사항 ### NiloToonEnvironment_LitInput.hlsl - 반사 관련 프로퍼티 추가 - 반사 텍스처 및 매트릭스 정의 ### NiloToonEnvironment_ExtendFunctionsForUserCustomLogic.hlsl - 반사 계산 함수 추가 - SurfaceData 및 색상에 반사 적용 ### PlanarReflectionRenderer.cs - NiloToon 셰이더와의 글로벌 프로퍼티 연동 - 반사 매트릭스 자동 계산 ## 성능 최적화 팁 1. **Reflection Framerate** 설정으로 반사 업데이트 빈도 조절 2. **Output Resolution Multiplier**로 반사 텍스처 해상도 조절 3. **Reflect Layers**로 불필요한 오브젝트 제외 4. 정적 환경에서는 **Update On Cast Only** 활성화 ## 문제 해결 ### 반사가 보이지 않는 경우 1. **Enable Reflection**이 활성화되어 있는지 확인 2. **Reflection Intensity**가 0이 아닌지 확인 3. 반사면 위치와 방향이 올바른지 확인 4. **Reflect Layers**에 반사될 오브젝트가 포함되어 있는지 확인 5. 재질의 **Metallic** 또는 **Smoothness** 값이 적절한지 확인 (반사는 매끄러운 표면에서 더 잘 보임) ### 셰이더 컴파일 오류 - `redefinition of '_ReflectionTex'` 오류 발생 시: - 이미 수정되었으며, 반사 텍스처는 `NiloToonEnvironment_LitInput.hlsl`에서만 정의됩니다. - 사용자 정의 셰이더에서 NiloToon 셰이더를 include할 때는 글로벌 프로퍼티를 사용하세요. ### "PlanarReflectionRenderer not found" 오류 이 오류는 PIDI Planar Reflections 5 플러그인이 아직 컴파일되지 않았거나 어셈블리에 포함되지 않았을 때 발생합니다. **해결 방법:** 1. **플러그인 재컴파일**: - Unity에서 `Assets > Reimport All` 실행 - 또는 `Assets/External/PIDI Game Development Framework/` 폴더 우클릭 > `Reimport` 2. **Unity 재시작**: - Unity 에디터를 완전히 종료하고 다시 시작 3. **어셈블리 정의 확인**: - `Assets/External/PIDI Game Development Framework/Planar Reflections 5/Source Code/` 폴더에 `.asmdef` 파일이 있는지 확인 - 있다면 `Assets > External > PIDI Game Development Framework > Planar Reflections 5 > Source Code` 폴더 우클릭 > `Reimport` 4. **디버그 정보 확인**: - Inspector에서 **"Debug: Check Available Types"** 버튼 클릭 - Console에서 사용 가능한 타입들 확인 5. **수동 설정**: - `Tools > NiloToon > Create Planar Reflection Bridge` 메뉴 사용 - 또는 씬에 빈 GameObject 생성 후 `PlanarReflectionRenderer` 컴포넌트 수동 추가 **일반적인 원인:** - 플러그인이 아직 컴파일 중 - 어셈블리 정의 파일 문제 - Unity 버전 호환성 문제 - 플러그인 파일 손상 ### 성능 문제 1. **Reflection Framerate**를 낮춤 (30fps 이하) 2. **Output Resolution Multiplier**를 0.5로 설정 3. **Render Shadows** 비활성화 4. **Use Post FX** 비활성화 ### 반사 품질 개선 1. **Output Resolution Multiplier**를 1.0 이상으로 설정 2. **Use Anti-aliasing** 활성화 3. **Use Mip Maps** 활성화 4. **Accurate Matrix** 활성화 5. 재질의 **Metallic** 값을 높여서 더 강한 반사 효과 적용 ## 호환성 - Unity 2022.3 이상 - URP (Universal Render Pipeline) 14.0 이상 - NiloToon Environment 셰이더 - PIDI Planar Reflections 5 ## 주의사항 - 이 패치는 NiloToon Environment 셰이더의 사용자 확장 기능을 사용합니다. - SRP Batcher 호환을 위해 일부 프로퍼티는 글로벌로 설정됩니다. - 다중 반사면 사용 시 성능에 주의하세요.