짱브리의 컴퓨터 그래픽스 도전기 (2)

짱브리·2022년 9월 27일
0
post-thumbnail

컴퓨터 그래픽스의 현실적 접근

- 파이프라인 구조로 이해하기

응용 프로그램에서 생성한 객체를 한 번에 하나씩 순서대로 처리 (지역적 조명; 광원으로부터 직접 입사, 반사되면 빛; 만 고려)(+전역적 조명은 지역적 조명과는 달리 음영이나 다중 반사와 같은 빛을 고려함)

vertices → vertex processor
1) 파이프 라인 내에서 가장 많은 작업을 차지하는 부분
2) 객체를 한 좌표에서 다른 좌표계로 변환하는 것을 의미. 여기서 Vertex는 좌표인 동시에 정점
3) 좌표계 변경의 과정은 행렬 변환과 동등
3-1) 행렬 변환: 예제 추가 예정
4) 정점 처리기가 좌표 변환과 함께 정점의 색상도 계산

Clipper and Primitive Assembler
1) Clipping 은 자르기. 카메라가 한 물체를 담는다고 생각해보자. 물체를 둘러싼 여러 광경까지 찍히지 않고 카메라의 시점에 따라 '한 부분'만 촬영될 것이다. 이렇게 객체 공간의 일부만 보이도록 가상의 카메라로 한 장면을 생성해내는 것을 자르기 (Clipping) 라고 한다.
상단의 이미지 출처 (2차원 클리핑 관련 설명)
2) Primitive Assembler: 기본 요소 조합이라고 직역되는 만큼, Vertex processor에서 처리한 정점들로 기하학적 객체를 (선분, 다각형, 곡선 및 곡면) 구성하는 과정을 말한다. 이 과정 후에 자르기 (Clipping) 와 래스터화 (Rasterzer) 가 일어나는데, 여기선 Clipper and Primitive Assembler 라는 과정명의 순서에 맞게 차례대로 서술하였다.

Rasterizer
1) 래스터화. 여기서 Raster Graphics 에 대한 이해가 먼저 필요하다. 이는 이미지를 프레임 버퍼 (framebuffer: 그래픽 내에서 화면에 나타날 영상 정보를 준비하고 저장하는 메모리) 내에 pixel 의 배열, 즉 raseter 로 생성함을 일컫는 말이다.

상단 이미지 출처, 래스터화 설명 위키백과 (이해를 위한 참고)
2) Rasterization = Scan Conversion (주사 변환)
기하학적인 도형을 프레임 버퍼 안의 픽셀의 색과 위치로 변환시키는 작업이다. 물체 좌표에서 화면 좌표로 변환되는 동시에 부동소수점 좌표에서 정수 좌표로 변환된다. 즉, 물체의 데이터 (벡터...) 를 비트맵으로 바꾸는 과정이다.
3) 이 과정에서 래스터화기는 각각의 객체에 대응하는 단편 집합 (fragments; 잠재적 픽셀, 프레임 버퍼 내에서 위치를 가짐) 을 생성하고, 이는 색상과 좌표값을 결정한다.
4) 즉, 정점 Vertex 으로 이루어진 폴리곤의 내부를 픽셀로 채워 래스터 이미지로 만드는 것 -> 정점 속성은 래스터화기에 의해 객체 전체로 보간 (interpolate) 됨

Fragment Processor
1) 단편 처리. 래스터화에서 생성된 단편 집합들이 처리된다. 프레임 버퍼 내의 각 화소의 색상을 결정한다.
2) 색상은 텍스쳐 매핑이나 보간 (interpolate) 에 의해 결정되며, 단편은 카메라에 더 가까이 있는 단편에 의해 가려질 수 있다. (참고: 은면 제거 (Hidden surface removal))
은면 제거 관련 참고 자료

profile
일찍 일어나는 새가 벌레를 잡는다. 으악 벌레먹기싫어~!!

0개의 댓글