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