그래픽스 렌더링 파이프라인 과정은 컴퓨터가 3차원으로 만들어진 모델을 2차원에 투영하는 렌더링 과정의 프로세스를 자세하게 표현한 것이다.

즉, 컴퓨터에 데이터로 존재하는 3D 리소스가 2D인 모니터에 출력되는 과정이다.

Untitled

위 과정에 따라 모니터 화면에 도형을 표시할 수 있다.

주황색이 프로그래머가 조작이 가능한 단계이다.

Input Assembler

Vertex Specfication이라고도 불리는 input Assembler 단계는 CPU로부터 렌더링을 수행할 도형의 정점(Vertex) 정보를 정점 버퍼에 담아 전달받는 과정이다.

GPU는 CPU의 자원에 직접 접근 할 수 없으므로, CPU에서 버퍼라고 부르는 메모리에 필요한 정보를 GPU로 전달해준다.

Vertex Shader

Input Assembler 단계에서 받은 정점들의 정보로 모델은 생성되었지만 공간 좌표계를 변환할 필요가 있다.

기본적으로 모델들은 자신만의 좌표계인 로컬좌표(LocalSpace)의 좌표를 가지는데, 모든 물체들이 하나의 월드에 위치하도록 로컬좌표에서 월드좌표(WorldSpace)로 변환하고, 실제 플레이어가 바라보는 카메라가 중심이 되는 공간인 뷰공간(ViewSpace)로 변환해준다.

로컬좌표 → 월드 좌표

이 과정에서 이동, (Translate), 회전(Rotate), 크기(Scale) 변환이 이루어진다.

월드좌표 → 뷰공간

카메라의 위치가 원점 (0f, 0f, 0f)이고 카메라를 기준으로 공간을 변환하는 과정

뷰공간 → 클립공간