렌더링 파이프라인( Rendering Pipeline:렌더링 순서)


  • 오브젝트 데이터 받아오기
    • 그래픽 카드는 버텍스(Vertex)으로 이루어진 물체의 데이터 값을 받아옴.
    • -> 그래픽 카드 내부의 값으로만 존재하는 데이터
    • 버텍스는 Index number, Position, Normal, Color, UV 등의 정보를 가짐.
    • 그래픽 카드는 버텍스의 정보들을 통하여 삼각형 면을 생성하여 오브젝트의 기본적인 형태를 갖춘 후, 이를 버텍스 쉐이더로 넘길 준비를 함.

 

  • 정점(Vertex) 쉐이더
    • 데이터들을 활용한 본격적인 쉐이딩 작업의 첫 번째 과정
    • 좌표 변환
      • 버텍스는 물체가 가지고 잇는 '자기중심적인' 위치 값을 의미하는 로컬(Local) 좌표계 상태
      • -> 오브젝트별로 가지고 있는 본인의 피봇이 0,0,0 위치값, 즉 중심값인 상태
      • _'원드 변환 행렬(월드 좌표계)'_을 곱해주어 월드 좌표계로 변환
      • -> 절대 좌표인 월드 좌표계의 위치로부터 각 물체의 상대적 위치 값 표현
      • _'카메라 행렬'_을 곱하여 원드 좌표계상의 오브젝트 버텍스 위치 값들을 카메라 중심점으로부터의 상대적 거리로 변환
        🔑 카메라 행렬 = 뷰(View) = 오쏘그래픽 프로젝션(Orthographic Projection)
      • 다시 _'프로젝션(Projection) 행렬'_로 곱하여 원근감 표현
    여기까지 작업을 그대로 모니터에 출력하면? 텍스쳐, 음영, 라이트 무엇도 없는 그냥 폴리곤 덩어리가 생성된다. 말 그대로 모니터로 볼 수도 없는 단지 3D 공간에서 존재하는 오브젝트일 뿐이다.

 

  • 래스터라이저(Rasterizer)
    • Rasterizer : 이 오브젝트가 모니터에서 표현될 때 어느 픽셀로 표현될 것인지를 나타내는 장치
    • 래스터화 : 3D 오브젝트를 모니터에 보이도록 '픽셀'로 변환하는 과정

 

  • 픽셀 쉐이더(Pixel Shader)

'한 픽셀의 색을 결정하는 코드'

모니터까지 넘어온 3D 그래픽 데이터는 본격적으로 화면에 픽셀로 찍히게 되는데, 아직 텍스쳐와 라이팅은 없는 상태임. 여기에서 픽셀 쉐이더가 가동되며 조명과 텍스쳐, 그림자와 각종 특수효과 등을 연산함.

 

 

 

색과 빛의 기본 원리


  • 가산혼합: RGB(Red, Green, Blue)로 이루어진 색을 더하면 더할수록 밝아지며, 모두 더하며녀 흰색이 되는 색의 체계
  • 일반적인 컬러 모니터는 RGB로 구성된 3개의 서브 픽셀로 이루어짐.

+ Recent posts