반응형

 

 

 

 

그래픽스 파이프라인

- 3차원 컴퓨터 그래픽스에서 그래픽스(또는 렌더링) 파이프라인은 3차원 이미지를 2차원 래스터 이미지로 표현하기 위한 단계적 방법을 말한다.

- 위 다이어그램은 DX3D 11에서의 파이프라인이며 입력에서 출력으로의 데이터 흐름을 보여준다.

- 다이어그램에서 직사각형 단계는 하드웨어 처리이기 때문에 프로그래밍이 불가능하고, 둥근 블록의 단계는 HLSL(High Level Shader Language)을 사용하여 프로그래밍이 가능하다.

- 보통 쉐이더 프로그래밍이라 말할 때는 '버텍스 쉐이더'와 '프래그먼트(픽셀) 쉐이더'를 제어하는 코드를 작성하는 것을 가리킨다.

- Input-Assembler(입력 조립) Stage : GPU가 CPU부터 정점 데이터를 받아 프리미티브들을 만든다.

- Vertex Shader(정점 쉐이더) Stage : 정점들의 공간 변환을 수행한다.

- Rasterizer(래스터라이저) Stage : 정점 데이터들을 기반으로 보간된 프래그먼트(픽셀)를 생성한다.

- Pixel Shader(픽셀 쉐이더) Stage : 프래그먼트를 받아 화면에 그려질 픽셀들의 색과 깊이 값을 출력한다.

- Output-Merger(출력 병합) Stage : Z 테스트, 스텐실 테스트, 알파 블렌딩을 통해 최종적으로 화면에 그려질 색상을 결정한다.

※※※ 프리미티브 : 가장 원시적인 단위를 뜻하는 것으로 여기서는 삼각형을 뜻한다.

 

 

 

- 다이어그램을 조금 더 세부적으로 표현하면 다음과 같다.

 

  • 로컬 스페이스

- 모델링 스페이스라고도 하며, 모델링 과정을 월드에 직접 구성하는 것보다 쉽기 떄문에 로컬 좌표 시스템을 이용하여 모델링을 쉽고 단순하게 만들어준다.

- 로컬 스페이스에서는 위치, 크기와 월드 내에서의 다른 물체와의 관계를 고려하지 않고 구성이 가능하다.

  • 월드 스페이스

- 로컬 좌표 시스템 내에 다수의 모델을 구성한 다음, 이들을 월드 좌표로 옮겨 하나의 장면을 구성한다.

- 행렬을 이용해 로컬 스페이스의 물체들을 위치, 회전, 크기의 변경작업을 수행하게 된다.

  • 뷰 스페이스

- 월드 좌표에서 카메 중심으로 좌표변환을 한다.

- 카메라를 월드 내의 임의의 위치나 방위를 가지면 투영 및 그 밖의 작업이 어렵다.

- 그래서 카메라를 월드의 원점으로 변경하고 양의 Z축을 보도록 한다.

  • 컬링(후면 추려내기)

- 카메라에 대해 뒤집혀있는(뒷면)의 프리미티브 처리를 건너뛰는 작업이다.

- GPU가 고속화 되더라도 모든 면을 연산하기에는 GPU에 부담이 되므로 렌더링 축소는 항상 해야된다.

  • 조명

- 물체에 명암을 주어 사실감을 더해준다.

- 조명은 정반사광(Specular), 난반사광(Diffuse), 환경광(Ambient)등이 있다.

- 광원은 방향성 광권(Directional light), 점 광원(Point light), 점적 광원(Spot light)이 있다.

  • 클리핑

- 시야 볼륨 외부의 기하물체를 추려내는 과정이다. (절두체 컬링)

- 절두체 : 투영행렬을 계산할 때 범위의 모양이 삼각뿔의 머리를 잘라둔 것처럼 생겨서 절두체라고 한다.

- 완전한 내부 : 폴리곤이 완전히 절두체 내부에 위치하면 그대로 보존

- 완전한 외부 : 폴리곤이 완전히 절두체 외부에 위치하면 추려낸다.

- 부분적 내부 : 폴리곤이 부분적으로 절두체 내부에 위치하면 폴리곤은 두 부분으로 나누어 내부에 위치한 부분은 보존하고 나머지는 추려낸다.

  • 투영

- 3D를 2D로 표현 (N차원에서 N-1 차원을 얻는 과정)

- 원근 투영(Perspective projection)을 사용하여 2차원의 화면을 얻는다.

  • 뷰포트

- 화면에 표시되는 영역

- 윈도우의 뷰포트라 불리는 화면의 직사각형으로 변환하는 과정

- 투영된 이미지를 모니터에 표시할 수 있는 크기로 다시 변환

  • 래스터라이즈

- 각각의 폴리곤을 그리는데 필요한 픽셀 컬러를 계산 (각 정점 좌표로 부터 선형 보간에 따라 생성된다.)

- 픽셀 하나하나를 계산하는 작업을 하기에 엄청난 양의 연산처리가 필요하므로 전용 그래픽 하드웨어에서 처리되어야한다.

 

 

 

 

 

반응형

+ Recent posts