본문 바로가기
Unity/Basic

렌더링 파이프라인 간단 정리

by Blemish 2022. 7. 11.
  • 렌더링 파이프라인에 대해서 이해한다.

 

렌더링

  •  렌더링이란 컴퓨터가 입력받은 데이터를 기반으로 이미지로 만들어내는 과정을 의미한다. CPU가 GPU로 명령을 하고 GPU에서 처리한다.

 

렌더링 파이프라인

  • 3D 이미지를 2D 래스터 이미지로 변경하는 일련의 작업 과정을 의미한다.
  • 크게 어플리케이션, 지오메트리, 래스터 라이저로 구분할 수 있다.

어플리케이션 스테이지

  • 한 프레임에서 렌더링 가능한 오브젝트에 대해서 컬링 연산에 의해 선별한다.
  • 렌더링할 오브젝트가 줄어들면 GPU 부담이 줄어든다.

지오메트리

  • 지오메트리 단계에서는 지오메트리를 구성하는 버텍스, 폴리곤을 처리한다.
  • 월드-뷰-프로젝션 트랜스폼
    • 버텍스 데이터는 특정 위치가 반영된 데이터가 아닌 메시 형태만 반영되어 있는 데이터이다. 원점 기준의 메시 모델에 대한 위치 데이터만 가지고 있는 것을 로컬 스페이스라고 한다.
    • 로컬 스페이스에 존재하고 있는 오브젝트를 특정 위치로 변환하는 것을 월드 트랜스폼이라고 한다.
    • 월드 트랜스폼의 작업이 완료되면 카메라의 위치와 오브젝트의 상대적인 위치를 고려해서 다시 위치를 변환해 주어야 한다. 변환 과정을 뷰 트랜스폼이라고 한다.
    • 프로젝션은 최종적으로 3차원 공간에 위치가 완료되면 3D 공간을 2D 상의 위치로 매칭 시켜주는 작업을 한다.
    • 프로젝션은 원근 투영, 직교 투영 두 가지의 방법이 있다.
  • 버텍스 쉐이더
    • 버텍스 쉐이더는 트랜스폼 변환 과정을 처리한다.
    • 메시의 버텍스에 행렬을 곱해줌으로써 수행된다.

 

래스터라이저

  • 지오메트리가 완료된 메쉬의 폴리곤에 속한 영역을 픽셀로 매칭시켜주는 작업을 래스터라이제이션이라 한다.
  • 래스터라이저 스테이지는 렌더링하는 메쉬가 화면에 매칭 되는 픽셀을 결정하고 최종 색을 입히는 과정이다.
  • 뎁스 버퍼(Depth Buffer), Z 버퍼(Z Buffer)
    • 프래그먼트 쉐이더에서 결정된 최종 색강 정보는 컬러 버퍼에 저장된다. 컬러 버퍼에는 깊이 값이 존재하는데 깊이 값은 카메라로부터의 거리를 뜻하며 이를 뎁스 버퍼라고 한다.
    • 뎁스 버퍼를 활용해서 화면에 표시되지 않는 픽셀들을 미리 걸러낼 수 있다.

 

프래그먼트 쉐이더

프래그먼트 쉐이더는 픽셀들의 최정 렌더링 색을 결정한다.

 

 

댓글