[ ps ]
[ 백준 / C++ ] 18110 : solved.ac (tistory.com)
[ Unity ]
기본적으로 CPU는 모든 연산을 ALU를 통해 수행한다.
이 과정을 줄이기 위해 CPU가 GPU에게 그래픽 관련 연산을 맡기는데 이것을 드로우콜이라고 한다.
렌더링 파이프라인( Rendering Pipeline )은 이러한 드로우콜이 수행되는 과정이라고 생각하면 된다.
정확히는 3D 모델을 2D 모니터에 출력하는 과정을 말한다.
드로우콜이 호출되면 크게 4단계에 거치게 된다.
1. Vertex Shader
2. 공간 변환 ( MVP )
3. Rasterizer
4. Fragment Shader
모든 모델은 삼각형의 집합으로 표현할 수 있다. 또 모든 삼각형은 점( vertex )의 집합으로 표현할 수 있다.
반대로 생각해서 vertex 정보를 가지고 있으면 모든 모델을 표현할 수 있는 것이다.
vertex 정보는 vertex buffer에 저장하고,
삼각형 정보는 vertex buffer의 index 조합을 index buffer에 저장한다.
이 정보가 Vertex Shader에 들어오면, 공간 변환이 진행된다.
각 모델 중심의 좌표가 화면 중심의 좌표로 변환되는 과정을 말한다.
이 과정에서 총 3개의 변환 행렬이 사용된다. ( Model, View, Projection )
Local Space → World Space → View Space → Clip Space
Model Matrix는 모델 좌표계에서 월드 좌표계로 변환시킨다.
View Matrix는 월드 좌표계에서 카메라 좌표계로 변환시킨다.
Projection Matrix는 카메라 좌표계에서 화면 좌표계로 변환시킨다.
변환된 vertex 좌표를 픽셀로 변환하고, 화면에 출력할 때 필요없는 픽셀을 쳐내는 과정을 Rasterizer라고 한다.
마지막으로 Fragment Shader를 통해 픽셀에 색을 입혀준다.
이러한 단계를 걸쳐 3D 모델은 2D 화면에 출력되게 된다.
'TIL' 카테고리의 다른 글
[ 24.06.20 ] 내일배움캠프 TIL - Attack Trigger (0) | 2024.06.20 |
---|---|
[ 24.06.19 ] 내일배움캠프 TIL - FSM (0) | 2024.06.19 |
[ 24.06.14 ] 내일배움캠프 TIL - Application Quit (0) | 2024.06.14 |
[ 24.06.13 ] 내일배움캠프 TIL - UGUI, Coroutine (0) | 2024.06.13 |
[ 24.06.12 ] 내일배움캠프 TIL - AudioManager (0) | 2024.06.12 |