📒Render Target
📌OM Set
DX11 기준
: Render Target과 Depth Stencil Texture를 같이 묶어서 세팅해줌
- Render Target: 최대 8장 지정 가능
- Depth Stencil Texture: 1장만 지정 가능
📒Multi Render Target(MRT) Class 설계
📌MRT Class
: RenderTarget arr와 DS를 모아 관리
- 더이상 Device가 직접 RenderTarget을 관리할 필요 없음
[Code Flow]
- MRT Create & Clear: RenderMgr
- RenderMgr에서 MRT 생성 후 들고 있는 구조
- 즉, 모든 MRT는 RenderMgr에서 들고 있음
- OM Set: render 시
- 사용하는 셰이더에 따라 적절한(정해진) MRT로 OMSet 해줌
📌MRT Type
- MRT는 여러 타입이 있을 수 있음
- 용도에 따라 MRT를 바꿔가며 렌더 찍어 사용
[Texture Format]
: MRT에서 Position 등의 정보를 Texture로 저장해 전달하기도 함
- Position 등은 큰 숫자를 저장할 수 있어야 함
R8G8B8 : 부동소수점을 저장하기에 8bit는 너무 작음
R32G32B32 : 큰 데이터를 저장하기 위해선 32bit Format으로 설정해야 함
📌대략적인 Rendering 순서
- Deffered
: 정보를 남겨두고 취합하는 렌더링
- 다른 연산에서 사용하기 위한 정보를 연산하는 렌더링
- 한 번의 연산으로 완성되지 않음, 다른 곳에서 가져다 사용하는 용
- ex) DEFFERED, DECAL, LIGHTING ...
-
Merge
: Deferred에 기록된 정보를 메인렌더에 병합시켜야 함
-
Forward
: 한 번의 연산으로 완성되는 렌더링
- Forward를 통해 AlphaBlend를 처리할 수 있음