렌더링 기법
정리하는 겸해서 렌더링 기법에 대해 더 알아보았는데, 설명이 잘 되어있다.
https://www.slideshare.net/agebreak/ndc11-deferred-shading
| 포워드 렌더링
Single-pass
- 해당 라이트에 영향을 받지 않아도 라이트 연산.
- 화면에 렌더링 되지 않는 면(Culling)도 셰이팅 연산을 해야만 한다.
- 멀티 라이트 상황에서 관리가 어렵다.
- 그림자와의 통합이 어렵다.
예시) 1억 개의 오브젝트, 50개의 라이트
라이팅만을 위한 계산양 : 1억 * 50
Multi-pass
- 화면에 렌더링 되지 않는 면(Culling)도 셰이팅 연산을 해야만 한다.
- 높은 배치 카운트 ( 1 / object / light ) // 배치를 잘 몰라서 이해가 잘 안 됨.
- 각 패스마다 중복된 작업이 많다.
예시) 1억 개의 오브젝트, 50개의 라이트
라이팅만을 위한 계산양 : 50 * 라이트의 영향을 받는 오브젝트 개수
| 디퍼드 렌더링
Deferred
- 굉장히 배치가 간단해지고, 엔진에서 관리가 쉽다.
- 일반적인 그림자 테크닉들과 통합이 쉽다.
- 라이팅을 위한 계산이 완전한 O(1) 복잡도를 가진다. (오브젝트 개수와 상관 없음.)
- 수많은 작은 동적 라이팅 사용이 가능하다.
예시) 1억 개의 오브젝트, 50개의 라이트
라이팅만을 위한 계산양 : 라이트 개수 * 라이트의 영향을 받는 오브젝트 개수
- 일종의 포스트 프로세싱처럼 수행된다. // 2D 화면으로 변환 후에, 마지막 작업 느낌인 듯하다.
- 오브젝트는 라이팅 계산이 전혀 없이 속성만을 렌더링 한다.
- 화면에 실제로 렌더링 되는 픽셀만 라이팅 계산을 수행한다.
라이팅 계산을 먼저 하지 않고, 미루어 두었다가 실행하기 때문에 지연 셰이딩이라고도 불림.
| 정리하고 느낀 점
Deferred 렌더링에서는 작은 라이팅을 적당히 넣어도 되겠다!!
맨날 듣기만 한 용어를 정리하니까 더 자세하게 알게 되는 것 같다.
'Unity' 카테고리의 다른 글
[Unity Github Desktop] CRLF 오류 (2) | 2019.12.10 |
---|---|
[Unity] Rendering Pipeline 정리 3 (과정) (2) | 2019.11.28 |
[Unity] Rendering Pipeline 정리 1 (정의, 종류) (0) | 2019.11.28 |
[Unity Shader] 전광판 쉐이더 만들기 (2) | 2019.11.27 |
[Unity] 씬이 로딩될 때 실행되는 함수 (SceneManager.sceneLoaded) (0) | 2019.11.26 |