『Lena's by ☆볶기!!』: Restart !!

Rorolena
Rendering Pipeline 과정

본 포스팅에선 랜더링 파이프라인에
관하여 작성하고자 합니다.

먼저 용책에 소개된 파이프라인은
9가지로 요약되어 있는데요

로컬 스페이스 -> 월드 스페이스 -> 뷰 스페이스 -> 후면 추려내기 ->
조명 -> 클리핑 -> 투명 -> 뷰포트 -> 래스터라이즈

각각의 단계를 요약 설명하면 이렇습니다.

 로컬 스페이스 물체의 삼각형 리스트를 정의하는데 이용하는 좌표 시스템으로 기하구조를 구성
 월드 스페이스 로컬 스페이스로 만들어진 다수의 모델을 구성후 이를 월드 좌표 시스템으로
옮겨 하나의 장면을 구성함 여기서 이동, 회전, 크기의 변환이 이루어짐
 뷰 스페이스 월드 스페이스 내에서 기하물체와 카메라는 월드 좌표 시스템과 연계되어 정의
 후면 추려내기 폴리곤의 전/후면중 후면을 추려내어 그리기 연산을 하지 않음
 조명 광원은 월드 스페이스 내에 정의되지만 뷰 스페이스 변환에 의해 뷰 스페이스로
변환되며 광원은 물체의 명암을 추가하여 장면에 사실감을 더함
 클리핑 시야 볼륨 밖의 물체를 추려내어 그리기 연산을 하지 않음
 투명 즉 원근감을 나타내기 위한 연산 과정으로
3D에서 2D에로의 원근감 표현을 위한 연산을 거치는 과정
 뷰포트 게임에서 뷰포트는 보통 직사각형의 전체 화면이 되지만
윈도우 모드에서는 클라이언트 영역이나 화면의 일부가되어 이를 연산함
 래스터라이즈 2D삼각형을 그리는데 필요한 픽셀 컬러들을 계산하는 과정

요는 이런 과정을 거친다고합니다,

쉽게 레고를 빗대어 이야기를 하자면

1. 레고로 어떤 물건을 만들고
2. 그 물건을 중심이되는 레고판(월드) 위에 올려놓습니다.
3. 어디서 어떻게 볼지 레고월드 해당 위치에 카메라를 가져다 놓고요
4. 자신의 시야밖의 세상은 그냥 없는샘 칩니다.
5. 그다음 레고월드에 각종 조명을 설치하고요
6. 재가 보는 시야의 모든 레고의 뒷면을 생각하지 않습니다.
7. 카메라 화면에 그리기 위해서 카메라까지 비춰지는 모습들을 사진 처럼 연산합니다.
8. 카메라에서 들어오는 화면을 모니터에 어떻게 띄워 볼건지 상황에따라 생각합니다.
9. 들어온 화면의 각각 미세한 점들의 색깔을 생각합니다.

정도로 추릴수 있겠습니다.

아 참고로 아래사진은
일본에서 소개된 파이프랜더링 과정입니다.
순번이 약간 다르지만 내용물은 대체적으로 동일합니다.
1: 3D 모델 구축
2: 가상공간에 배치
정점파이프라인
정점셰이더
3: 정점단위의 음영계산
지오메트리셰이더
4: 정점(프리미티브)의 증감(增減)
5: 카메라공간으로의 전개
6: 클리핑이나 음면처리
7: 트라이앵글 셋업과 래스터라이징 처리
픽셀파이프라인
픽셀셰이더
8: 픽셀단위의 음영처리
9: 텍스처 적용
10: 렌더 백엔드(필터, 깊이, 스텐실)(포그, 블렌딩)
11: 출력

'개발실 ◐ ━━ > DirectX' 카테고리의 다른 글

Texture와 Filtering설정  (0) 2012.03.26
World Transformation(월드 변환)  (0) 2012.01.30
IndexBuffer를 이용한 Color Cube만들기  (0) 2012.01.26
다이렉트 초기화  (2) 2012.01.14