Deferred Rendering 구현
- 이전 2D 포트폴리오에서 Deferred Rendering을 구현한 적이 있어서 그런지 어렵지 않게 구현했다.
- 밑바닥부터 다시 구현하다보니 추가해야 하는 클래스들도 많고 값을 누락하는 경우들도 있었는데 디버깅을 통해 어느 부분이 잘못된 부분인지 구별하는 것은 크게 어렵지 않았다.
- 문제는 Directional Light는 정상 작동하는데 Point Light와 Spot Light는 제대로 작동하지 않는 것이었다...
- Point Light와 Spot Light는 물체의 위치를 기반으로 그리는데 위치 값을 G-Buffer의 Position 텍스쳐로부터 읽어와야 했다.
- 결과적으로 빛의 Position이 잘못 전달되고 있었다는 것을 캐치했고 실제로 해당 부분의 구현이 문제가 있었다.
- 이 부분을 수정하니 말끔히 해결되었다.
Blinn Phong 적용
- Blinn Phong 기법은 Phong 기법에 비해 성능적으로 이점이 있는 기법이다.
- Blinn Phong 모델과 Phong 모델의 차이점은 정반사광 (Specular)을 구하는 연산에서 차이가 있다.
- Blinn Phong 모델은 기존 Reflection 벡터를 사용하는 Phong 모델과 달리 Halfway 벡터를 사용한다.
- Halfway 벡터는 L + V/|L + V|로 쉽게 구할 수 있기 때문이다.
- 기존 Phong 모델의 반사 벡터를 구하는 것보다 비용이 저렴하기 때문에 성능 상 이점이 있다.
내일 할 일
- 프로젝트 리소스 정리
- 파티클 시스템, 컴퓨트 셰이더를 이용한 라이팅 구현
'게임 개발 > [D3D_Portfolio] DirectX3D 팀 포트폴리오 작업일지' 카테고리의 다른 글
6. FBX 텍스쳐 매핑 & Toon Shading (0) | 2023.07.21 |
---|---|
5. FBX 로드 (0) | 2023.07.20 |
4. Bloom 구현 (0) | 2023.07.19 |
3. Particle System 구현 및 Bloom 구현 중 (0) | 2023.07.18 |
1. 프레임워크 기초 작업 (0) | 2023.07.15 |
댓글