[컴퓨터그래픽스] Simplified Rendering Pipeline

Serun1017·2024년 10월 23일
0

컴퓨터그래픽스

목록 보기
6/31

Ray Tracing은 방대한 메모리 사용과 높은 계산 비용 요구로 실사용이 거의 불가능 하다. 이런 문제를 해결하기 위해 등장한 것이 Simplified Rendering Pipeline 이다.

Simplified Practical Approach

Ray Tracing 에서는 모든 Objects의 정보를 메모리에 넣은 후, Light Source 에서 방출된 빛이 Viewer에 도달하는 경로를 역으로 계산한다. 이는 카메라에 도달하는 모든 픽셀들의 광선을 역추적 하기 때문에 높은 계산 비용을 요구한다.
그러나 실제로 Viewer에 도달하는 모든 픽셀들의 광선을 역추적 할 필요는 없다. Simplified Rendering Pipeline에서 우리는 물체의 3차원 Vertex 정보를 카메라 시점의 2차원 데이터로 변환한다. 그리고 Vertex 사이의 공간을 색으로 채운다. 다음의 과정을 통해 상세히 알아보자.

Simplified Rendering Pipeline

Simplified Rendering Pipeline.png

Vertex Data

기본적으로 Objects를 표현하기 위해서는 물체의 모양, 크기, 위치 등의 정보를 갖고 있어야 한다. Simplified Rendering Pipeline에서는 이러한 정보들을 3D 모델의 Vertex 정보로 저장한다.
Vertex 는 3차원 상의 점으로 표현되며 점의 좌표, 다름 Vertex 와 연결되는 법선 벡터, 색상 정보 등을 갖는다.

Vertex Processor

3D 모델의 Vertex 정보를 입력받고, 이를 화면에 그리기 위한 준비를 한다. 이 단계에서는 모델의 각 Vertex가 월드 좌표계에서 카메라 좌표계로 변환(Projection: 사영)된다.

Clipper and primitive assembler

Clipping 단계에서는 카메라의 시야 범위(FOV, Field of View) 밖에 있는 물체나 정점은 렌더링되지 않으므로, 불필요한 부분을 제거한다. 이로 인해 연산을 최소화하여 성능이 향상된다.

Rasterization

만약 Object가 카메라에 보이면 카메라에 표현되는 각 픽셀은 적절한 color 값을 가져야 한다. Rasterization 과정에서는 Vertex 정보를 이용해 화면에 표시될 픽셀을 계산하는데 이를 Fragemnts 정보로 저장한다.

  • Fragments 는 potential pixels 로, 픽셀의 위치(location), 색상(color), 카메라로부터의 거리(depth) 정보를 갖는다.
    이때 삼각형의 세 개의 Vertex 사이의 평면의 색상을 정해야 하는데, 이는 세 개의 정점에 색상 정보를 Interpolate (보간) 하여 계산한다.

Fragment Processor

Fragment Processing 단계에서는 각 픽셀(Fragment)에 대해 색상, 텍스쳐, 조명, 반사광 등의 셰이딩 정보를 적용한다.
또한 카메라와 물체와의 거리에 차에 의해 생기는, 다른 Fragments 에 의해 가려지는 Fragment 는 이 단계에서 제거한다. (단, 이 과정은 Rasterization에서 z-버퍼를 추가로 계산하여 Depth Test를 Fragment Processing 단계 이후에 수행한다.)

장점 및 단점

장점

  1. 낮은 계산 비용
    • Rasterization는 픽셀 단위의 광선 추적을 수행하지 않고, 3D 모델을 간단하게 2D 화면에 투영하는 방식이므로 Ray Tracing 에 비해 훨씬 빠르게 처리된다.
  2. 적은 메모리 공간 필요
    • Ray Tracing 과는 다르게 모든 Objects의 정보를 필요로 하는 것이 아닌 카메라에 투영되는 Vertex 정보 만을 필요로 하기 때문에 Ray Tracing 과 비교하였을 때 상당히 적은 메모리 공간만을 필요로 한다.
  3. 실시간 렌더링
    • 낮은 계산 비용과 적은 메모리 공간으로 인해 게임, 가상 현실(VR), 증강 현실(AR)과 같이 실시간 렌더링이 중요한 작업에서 매우 유용하게 사용된다.

단점

  1. 간접 조명 및 전역 조명 부족
    • Simplified Rendering Pipeline에서는 기본적으로 광원이 고려되지 않기 때문에 간접 조명(Global Illumination)을 직접적으로 구현하기 어렵다.
  2. 비현실적인 조명과 반사
    • Rasterization은 기본적으로 정밀한 빛의 상호작용을 시뮬레이션하지 않기 때문에 Ray Tracing에 비해 현실적인 반사, 굴절, 그림자 표현이 어렵다.

정리

Simplified Rendering Pipeline

단계결과
Vertex Processor3D 공간의 정점(Vertex)이 화면(Viewer, Camera)에 투영되는 위치로 변환됨
Clipping화면에 보이는 부분만 남기고 나머지는 제거됨
Rasterization3D 모델이 2D 화면에 표시되기 위한 픽셀 기반의 형태(Fragment)로 변환됨
Fragment Processor각 픽셀이 최종적으로 어떤 색을 가질지 결정됨

장점 및 단점

장점단점
낮은 계산 비용간접 조명 및 전역 조명 부족
적은 메모리 공간 필요비현실적인 조명과 반사
실시간 렌더링

0개의 댓글