렌더링 파이프라인 (Rendering Piprline) : 3차원 이미지를 2차우너 래스터 이미지로 표현을 하기 위한 단계적인 방법
각 단계는 아래의 단계로 나뉘는데 더욱 세분화 될 수 있다.
1) 입력 조립 단계 (Input Assembler)
2) 버텍스 쉐이더 단계 (Vertex Shader)
3) 레스터라이저 단계 (Rasterizer)
4) 픽셀 쉐이더 단계 (Pixel Shader) / 프래그먼트 쉐이더 단계 (Fragment Shader)
1. 입력 조립 단계 (Input Assembler)
CPU로부터 정점 버퍼(위치, 노말, 색상, UV값 등을 가진 자료구조)를 GPU로 운반 받는다. (아직는 화면에 보여지는 것 없는 데이터로만 전달 받은 상태이다.)
GPU는 정점 버퍼를 가지고 정점 데이터를 만들어 각 데이터들이 이어진 삼각형 면을 생성하고 삼각형 면으로 이루어진 오브젝트가 만들어진다.
2. 버텍스 쉐이더 단계 (Vertex Shader)
각 오브젝트는 본인 기준 위치좌표계(local 좌표계)를 사용하고 있어 여러 오브젝트가 겹쳐 있게 되지만 월드 변환 행렬(월드 좌표계)를 곱해주어 오브젝트들을 월드 내에 각 좌표로 이동시켜준다.
그리고 카메라에 보여질 뷰포트 좌표계에 곱해주어 사람의 눈에 어디에 위치해질 지 정해준다.
마지막으로 프로젝션 행렬을 곱해주어 원근감이 느껴질 수 있도록 정점을 위치시켜준다.

다만 아직 각 정점에 색이 입혀지지 않았기에 아직 사람의 눈으로 볼 수 없는 3D 공간에 존재하는 오브젝트이다.
3. 레스터라이저 단계 (Rasterizer)
이제 카메라에 비춰질 오브젝트를 픽셀화하여 3D 오브젝트를 2D 이미지화 시키는 것이다.
4. 픽셀 쉐이더 단계 (Pixel Shader) / 프래그먼트 쉐이더 단계 (Fragment Shader)
레스터라이저 단계를 거친 픽셀이미지에 색을 입히는 단계이다. 조명, 텍스쳐, 그림자와 같은 특수효과등을 연산하게 된다.
'Unity > Unity_Shader' 카테고리의 다른 글
| 06. 쉐이더 변수로 색상 변경 (0) | 2023.04.25 |
|---|---|
| 05. 쉐이더로 색상 변경 (0) | 2023.04.24 |
| 04. 쉐이더 코드 수정하기 (0) | 2023.04.23 |
| 03. Surface Shader 만들기 (0) | 2023.04.23 |
| 01. Shader란? (0) | 2023.04.23 |