본문 바로가기
XR/Unreal Engine

[Unreal Engine] 쉐이더 구조 및 언리얼 렌더링 파이프라인 이해하기

by 여기는 정글 2024. 6. 10.

안녕하세요. 정글러입니다.

 

1. Shader

먼저 쉐이더의 구조와 PBR, 텍스쳐의 상호작용 등을 살펴보겠습니다.

쉐이더의 기본 구조와 흐름은 다음과 같이 이루어져 있습니다.

Buffer Vertex Shader Rasterizer Pixel Shader Result
메모리에 담아놓는 형태 메시의 정점 정보, 공간 정보, 라이팅 연산하고 변환 pixel을 그릴 범위를 알려주는 것 재질, 컬러, 후처리  

 

PBR은 Diffuse와 Specular 반사를 보여줍니다. 즉, 빛의 각도와 보는 각도에 따라 표현되는 것입니다.

난반사(Diffuse)는 표면의 거칠기와 눈의 위치에 따라서 보이게 됩니다.

PBR은 메탈과 비메탈, 러프와 글로시를 가장 중요하게 여깁니다.

비메탈에 가까울 수록 정반사는 자신의 색과 가깝게, 메탈일 수록 정반사는 흰색에 가깝게 반사하게 됩니다. 

출처 : Automotive Materials

 

2. Rendering Pipeline

언리얼엔진의 렌더링 파이프라인은 다음과 같이 구성되어 있습니다.

1. 불투명 프리패스

2. 라이트 영역 할당과 계산 - 큐브 형태로 그리드로 분산해서 계산

3. 차폐 테스트 - 오브젝트가 겹쳐지는 것을 계산

4. Hi-z버퍼

5. 쉐도우뎁스

6. 베이스 패스 전 과정 구성

7. 베이스 패스 - 재질, 색상 등 메인이 되는 결과값 계산

8. 프리라이팅으로 주변 폐색 계산

9. 간접광과 ao계산

10. 라이트 계산 - 투명, 불투명, 그림자 조명 등 계산

11. 화면 공간 반사와 환경 반사 취합 - 반투명, 파티클 계산

12. 투명물체 렌더링

13. 굴절계산

14. 후처리

 

렌더링 파이프라인의 경우에는 아직 어려운 부분도 많은데요, 실제로 언리얼에서 렌더링 작업을 해보면서

어떤 계산값을 줄일 수 있는지 고민해보면 좋을 것 같습니다.

이러한 처리 단계를 이해하고 계산을 줄일 수 있는 방법을 고민하여 효율적인 렌더링 작업을 해보고자 합니다.

 

감사합니다.