CS/그래픽스 & 게임수학

렌더링 파이프라인

혀니리리 2023. 9. 27. 16:33
728x90

[Computer Graphics] 렌더링 파이프라인 요약 (velog.io)

 

[Computer Graphics] 렌더링 파이프라인 요약

3차원으로 만들어진 모델을 2차원 픽셀 데이터로 변환하는 렌더링 과정인 렌더링 파이프라인(Rendering Pipeline)에 대해 알아보자.

velog.io

3차원으로 만들어진 모델을 2차원에 투영하는 렌더링 과정의 프로세스를 자세하게 표현한 것이다.

컴퓨터에 데이터로 존재하는 3D 리소스가 모니터에 출력되는 과정이 렌더링 파이프라인을 따르게 된다.

위의 과정에 따라 화면에 도형을 표시할 수 있으며, 주황색 박스로 된 과정이 조작 가능한(Programmable) 단계

 

1.Input Assembler (Vertex Specification)

CPU로부터 렌더링 수행할 도형의 정점 정보를 정점 버퍼에 담아 전달받음

CPU에서 버퍼라고 부르는 메모리에 필요한 정보를 담아 GPU로 전달=> 도형 생성 완료

 

2.Vertex Shader

공간좌표계로 변화하는 곳

도형들이 가진 자신들만의 좌표계인 Local Space 좌표를

하나의 월드에 위치하도록 World Space로 변환하고

실제 플레이어가 바라보는 카메라가 중심이 되는 공간인 View Space로 변환해줌

 

3.Tesselation (생략 가능)

주어진 모델의 정점을 더 잘게 쪼개어 디테일하게 표현할 때 사용

 

4.Geometry Shader (생략 가능)

기본 도형에서 정점을 추가하거나 삭제하여 모델을 변경할 수 있는 쉐이더

이를 활용하여 정점정보를 추가할수 있는 모델이라면 그만큼 정점 정보를 빼고 저장할 수 있으니 디스크 용량, 그래픽 메모리 절약에 도움이 될 수 ㅇ

 

5.Rasterization

정점 정보를 완전히 결정한 3D도형을 실제 픽셀 데이터로 변환해주는 단계.

정점 사이의 공간은 보간(Interpolation)을 통해 메워줘야 함

 

6.Fragment Shader (Pixel Shader)

래스터화된 도형에 텍스쳐매핑, 범프매핑, 노말매핑 등의 기법으로 텍스쳐를 입혀 색을 표현

정점의 법선벡터 정보를 통해 조명처리도 해당 셰이더에서 이뤄짐

 

728x90

'CS > 그래픽스 & 게임수학' 카테고리의 다른 글

diffuse / ambient / specular  (0) 2023.12.15
unity 그림자 구현  (1) 2023.12.15
DiretX / OpenGL  (1) 2023.12.15
게임에서의 삼각함수 활용  (2) 2023.12.11
게임에서의 외적과 내적  (1) 2023.12.11