2022.09.08 경일 메타버스 23주차 4일 수업내용. DirectX 9을 이용한 3D GAME - 랜더링 파이프라인
p. 101 ~ 119
3D 세계에 대한 기하학적 표현과 이 세계를 바라보는 관점을 정의하는 가상 카메라를 이용해 2D 이미지를 만들어내는 역할을 담당한다.
삼각형은 3D 물체의 기본 구성 요소로서, 물체를 구성하기 위해서는 물체의 모양과 외형을 묘사하는 삼각형 리스트를 만들어야 한다.
각각의 삼각형을 구성하는 꼭짓점을 버텍스라 하고 정보를 저장한다.
삼각형의 버텍스를 지정하는 순서는 매우 중요하며,
이를 두르기 순서 (Winding Order)라고 부른다.
삼각형의 리스트를 만들면 상당수의 버텍스 정보가 중복된다.
중복을 피하기 위해 인덱스 개념을 이용한다.
버텍스 리스트와 인덱스 리스트를 구성한다.
버텍스 리스트는 물체를 구성하기 위해 사용한 서로 다른 버텍스를 모두 저장한다.
인덱스 리스트는 삼각형을 구성하기 위한 버텍스 리스트로의 인덱스 값을 포함한다.
인덱스 리스트는 이제 버텍스 리스트 내의 각 버텍스들이 어떻게 두 개의 삼각형을 구성하는지를 정의한다.
파이프라인의 과정
로컬 스페이스
월드 스페이스
뷰 스페이스
후면 추려내기
조명
클리핑
투영
뷰포트
래스터라이즈
물체의 삼각형 리스트를 정의하는 데 이용하는 좌표 시스템이다.
모델링 스페이스라고도 불린다.
모델링 과정을 쉽고 단순하게 만들어준다.
로컬 좌표 시스템 내에 모델을 구성한 다음에는 이를 전역(월드) 좌표 시스템으로 옮겨 하나의 장면을 구성해야 한다.
이 과정에서 모델은 월드 변환(이동, 회전, 크기 변형 포함)을 거쳐 월드 스페이스로 옮겨진다.
월드 변환은 위치, 크기, 방위를 포함하는 각 물체 간 관계를 정의함으로써 이루어진다.
월드 변환은 각 변환 행렬을 곱한 하나의 행렬로 표현될 수 있다.
뷰 스페이스 변환 :
카메라의 변환이 월드에 대한 관점을 바꾸지 않도록 카메라에 맞춰 월드 내 모든 물체를 변환하는 것
위의 뷰 스페이스 변환을 거친 물체는 뷰 스페이스 내에 위치한다고 말할 수 있다.
카메라는 절대로 폴리곤(물체)의 후면을 보지 못한다.
후면 폴리곤을 추려냄으로서 연산의 이득을 취한다.
시야 볼륨 외부의 물체를 추려낸다.
시야 절두체에서 물체의 위치는 다음 세 가지로 분류된다.
완전한 내부
완전한 외부
부분적 내부(외부)
n 차원에서 n-1 차원을 얻는 과정
원근 투영 (Perspective Projection)과 직교 투영 (Orthographic Projection)이 있다.
각각의 삼각형을 그리는 데 필요한 픽셀 컬러들을 계산하는 과정
엄청난 작업 양을 필요로 하므로 반드시 전용 그래픽 하드웨어에서 처리되어야 한다.
이 결과물은 모니터에 바로 디스플레이 할 수 있는 2D 이미지가 된다.