WinCNT

Deferred Rendering 본문

게임 프로그래밍(학습 내용 정리)/3D Graphic Engine

Deferred Rendering

WinCNT_SSS 2022. 6. 22. 13:08

Deferred Rendering

디퍼드 렌더링, 지연된 렌더링

Deferred Shading이라고도 함

 

레거시한 Forward Rendering과 대비됨

 

라이팅 계산을 먼저 하지 않고 미루어 두었다가 실행하기 때문에

지연(Deferred) 렌더링이라고 불린다

 

기존의 렌더링 파이프라인에서 더 발전하기 위해

픽셀 쉐이더 쪽으로 기하 정보를 보내는 시도가 있었다

 

픽셀 쉐이더의 다른 패스로 정보를 보내게 됐음

2D 텍스처끼리 조립해서 하나의 텍스처로 다시 조립하는 것

 

장점으로는 일단 광원을 무한대로 보낼 수 있다

오브젝트의 개수에 상관 없이 상수 시간에 라이팅의 처리가 가능하다

 

단점으로는 투명도를 처리할 수 없다

 

핵심 정리

1. 먼저 다양한 정보를 텍스처에 출력(1st pass, MRT)

    position, normal, depth, 그 외 기상천외한 정보들

2. 픽셀 쉐이더에서 각 픽셀당 처리(2nd pass, 지연된 처리)

 

MRT - Multiple Render Target

한 장면을 다수의 렌더 타겟에 그리는 것

 

바로 화면에 그리려면 MRT가 필요 없다

하지만 Deferred에 사용하기 위해서는 MRT가 필요하다

 

1st pass에서는 여러 정보를 내보낸다

 

주의점과 참고 사항

버퍼에 정보를 그려야 한다

정보는 다양하게 취사 선택할 수 있다

일반적으로 알베도(디퓨즈), 노멀 값, 깊이 값은 포함하는 것 같다

 

SSS

'게임 프로그래밍(학습 내용 정리) > 3D Graphic Engine' 카테고리의 다른 글

PBR(Physically Based Rendering) - Regacy Model 복습  (0) 2022.07.13
SSAO(Screen-Space Ambient Occlusion)  (0) 2022.06.29
Shader  (0) 2022.06.15
Subsystems  (0) 2022.06.10
개론  (0) 2022.06.08