🙇‍♀️그래픽스 렌더링 파이프라인 OT


🪐그래픽스 OT

게임은 영화를 찍는 것과 유사하다!
가상 세계의 공간에서 물체를 세우고 카메라로 찍는 것이 기본 베이스이다.
그래픽은 물체의 정점을 수학적 계산을 통해서 2차원의 화면으로 보여줘야한다.

게임은 카메라가 고정이 아니다. (Real Time Rendering)

애니메이션처럼 한 번만 잘 찍으면 되는게 아니라 실시간으로 연산을 하기 때문에 최신의 그래픽스 기술을 사용 할 수가 없다.
왜냐하면 하드웨어적으로 한계가 있기 때문이다.
보통 5년~10년 정도 기술이 뒤처져있다.

DirectX를 이용해서 무엇을 해야되는가?

  • 만들어져 있는 가상의 물체들의 정보를 이용해 가지고 화면을 최종적으로 계산을 할 수 있어야한다!!

화면 자체가 어떻게 2D 화면으로 변형이 되어서 그려지는지를 연구하는 것이 그래픽스이다


🪐렌더링 파이프라인 OT

CPU와 GPU의 차이

CPU와 GPU

CPU는 직렬적인 계산을 수행하며 연산속도가 매우 빠르다. ALU에서 실제로 계산을 하게 된다.
GPU는 병렬적으로 계산을 수행하며 양이 매우 많다.

그래픽의 계산을 정점 하나하나가 병렬적이기 때문에 그래픽 계산에 적절하다.
정점들은 서로 연관성이 없는 독립적인 일감이기 때문이다.
GPU의 태생이 그래픽 계산을 하기위해서 나왔다.

렌더링 파이프라인

렌더링 파이프 라인

  • Input-Assembler : 정점 정보를 전달하는 단계
  • Vertex Shader (VS) : 정점들을 대상으로 연산하는 단계 (정점 변환을 해주는 단계)
  • Tessellation : 정점을 추가하는 단계 (지형같은 거시적인 단계)
    • Hull Shader
    • Tessellator
    • Domain Shader
  • Geometry Shader : 정점을 추가하는 단계 (삼각형같은 작은 단계)
  • Rasterizer : 색을 보간하는 단계 Rasterizer 예시
  • Pixel Shader : 최종적으로 색상을 입히는 단계
  • Output-Merger : 마무리 단계