Forward가 기본, Deferred가 라이팅을 처리하는 데에 어떠한 방식을 추가한 것이다.
당연히 Deferred가 높은 Tier의 디바이스를 요구한다.
포워드 렌더링
한 번에 하나의 버퍼에 하나의 지오메트리를 넣고, 라이팅을 거쳐 렌더링하는 기본적인 기법
각 Mesh에 대하여 각 광원에 관한 것을 모두 그려야 한다.
m개의 광원과 n개의 Mesh가 포함된 씬을 표현하기 위해서는 m*n번의 드로우 콜이 필요하다.
이 호출수가 크기 때문에 FPS를 확보하면서 그릴 수 있는 Object 수에 한계가 있다.
디퍼드 렌더링
한 번에 하나의 버퍼에 렌더링을 하는 것이 아니라, 여러 버퍼에 동시에 렌더링을 하는 방식이다.
깊이와 노말 정보에 대한 Geometry Buffer(G-Buffer)를 통해 불투명 오브젝트들을 렌더링하고
렌더 타겟에 저장 후, 라이팅하여 최종적으로 표현될 색상을 계산하는 2 공정을 거침
불투명 오브젝트를 모두 렌더링하게 되면 컬링이 끝나게 되어 불필요한 렌더링을 할 필요가 없어진다.
하지만 G-Buffer가 씬의 각 픽셀에 대한 '단일 데이터' 만을 저장하기 때문에 디퍼드는 알파값을 적용할 수 없다.
멀티 렌더 타겟이 가능한 디바이스에서만 적용이 가능하며, 높은 메모리 대역폭을 요구한다.
디퍼드 렌더링은 일반적으로 디바이스가 좋고, 오브젝트가 많으며, 동적 라이팅이 많은 경우에 사용하는 방식이다.
Baked는 미리 오브젝트를 라이트에 대하여 구울 수 있는 모드이다.
https://mariageunit.blogspot.com/2019/07/unity-13-light-bake.html
굽는 법은 다음을 참고하면 될 듯함
참고)
https://agh2o.tistory.com/13?category=707164
https://www.slideshare.net/cagetu/kgc2012-deferred-forward
'Unity' 카테고리의 다른 글
[Unity] Global Illumination (그래픽스 최적화 스타트업) (0) | 2022.08.17 |
---|---|
[Unity] 그림자 (그래픽스 최적화 스타트업) (0) | 2022.08.08 |
[Unity] 드로우 콜과 배칭 (그래픽스 최적화 스타트업) (0) | 2022.07.25 |
[유니티] sRGB, Linear, Gamma (0) | 2022.07.20 |
[Unity] 병목 프로파일링 (그래픽스 최적화 스타트업) (0) | 2022.07.17 |