150 lines
6.0 KiB (Stored with Git LFS)
Markdown
150 lines
6.0 KiB (Stored with Git LFS)
Markdown
# 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<NiloToonPlanarReflectionBridge>();
|
|
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 호환을 위해 일부 프로퍼티는 글로벌로 설정됩니다.
|
|
- 다중 반사면 사용 시 성능에 주의하세요.
|