래스터화 단계
GPU 투영된 삼각형의 픽셀 색상 계산
뷰포트 변환
절단 → 원근 나누기 → NDC 좌표 변환 → 후면 버퍼의 직사각형 영역으로 변환
2차원 이미지를 형성하는 픽셀 의 단위 값으로 된다.
Z값은 변경하지 않고 나중에 깊이 버퍼링에 사용
후면 선별
삼각형에는 두 면이 존재 하고 Directx 에서는 관례로 삼각형의 감는 순서에 따라서 전후면을 판단
시계 방향으로 삼각형이 감기면 전면, 반 시계 반향이면 후면으로 판단
삼각형의 법선 n 의 공식 (n의 방향이 전면)
$$ e_0 = v_1-v_o\\e_1 = v_2-v_o\\ n = \frac{e_0\times e_1}{e_0 \times e_1} $$
후면 선별 : 3d 오브젝트의 전면만 렌더링 해도 후면쪽은 관찰자가 볼 수 없고
파이프 라인에서 처리 할 삼각형 수가 절반 가량 줄어 든다
정점 특성의 보간
정점 자료에는 위치, 색상 및 법선 벡터, 텍스처 좌표 추가적인 특성을 붙일수 있다.
3차원 공간에서 삼각형을 2차원 투영창에 선형으로 보간,
3차원에서 균등하게 나누어진 구간들이 2차원에서는 균등하지 하지 않아서
원근 보정 보간을 사용 계산은 하드웨어가 수행
삼각형 내부 픽셀들은 위한 값들을 정점에 부착된 값들로 부터 계산
픽셀 셰이더 단계
PS 프로그래머가 작성 GPU 실행, 각각의 픽셀 단편에 실행
보간된 정점 특성들을 입력 받아서 하나의 색상 출력
고정된 상수의 색값을 리턴 해주거나 조명, 반사 그림자 효과등 다양한 효과 를 수행
출력 병합기 단계
픽셸 셰이더에서 생성된 픽셀 단편을 입력 받는다
깊이 및 스텐실 판정으로 폐기 및 후면 버퍼에 기록
픽셀 값의 혼합
혼합 : 새 픽셀이 후면 버퍼의 기존 픽셀을 완전히 덮어 쓰는것이 아니라 일정한 공식으로 섞은 값
반투명 효과
참고 및 내용 인용
프랭크 D 루나 지음, 류광 옮김
한빛 미디어
Directx 12를 이용한 3D 게임 프로그래밍 입문(2017)
'Directx12 3D 프로그래밍 입문 > 5. 렌더링 파이프 라인' 카테고리의 다른 글
5.14 1 ~ 8번 연습문제 (1) | 2024.02.08 |
---|---|
5.11 렌더링 파이프 라인 요약 (1) | 2024.02.08 |
5.7 테셀레이션, 기하 셰이더, 절단 (0) | 2024.02.08 |
5.1 렌더링 파이프 라인의 개요 (1) | 2023.11.13 |
5. 렌더링 파이프 라인 (1) | 2023.11.12 |