본문 바로가기

Directx12 3D 프로그래밍 입문28

5.14 1 ~ 8번 연습문제 1. 프라미드 정점 목록, 색인 목록 색인 (vo v3 v1) (v1, v3, v2) (v3 v4 v0)(v0 v4 v1)(v1 v4 v2) (v2 v3 v4) 정정 목록 : v0 {0,0,0} v1 {1, 0, 0} v2{1, 0,1} v3{0,0,1} v4 {0.5,1,0.5} 2. 두 도형의 정점 색인을 하나로 표현 정점 목록 a 형태 정점 목록 : v0 {0,0,0} v1{0.2, 1, 0} v2{1.2, 1, 0} v3{0.8, 0.2, 0} b 형태 정점 목록 : v4{5, 0.5, 0} v5{6,0.5,0}, v6{5.8, 0.25,0} v7{5,0,0} v8{4.8,0.25,0} v9{4,0.5,0} v10{4.8, 0.75,0} v11{5,1,0} v12{5.8, 0.75,0} 색인 목록.. 2024. 2. 8.
5.11 렌더링 파이프 라인 요약 입력 조립기(IA) 정점 과 색인으로 기본 도형(삼각형, 선분, 점) 조립 정점 셰이더 입력 : 기본 도형 조립 한 후 정점 점정의 좌표계 변환 : 로컬 좌표 → 세계 좌표 → 카메라 좌표 → 투영(동차 절단 공간) 출력 : 투영 절단 공간에 변환된 정점 덮개 셰이더 - 추후 설명 테셀레이션 메시의 삼각형을 잘게 쪼개서 세분화, LOD 입력 : 투영 절단 공간에 있는 정점 출력 : CPU 에서 새 기하구조를 만들고 GPU 메모리에 올려서 사용 영역 셰이더 - 추후 설명 기하 셰이더 입력 : 동차 절단 공간에 있는 정점 입력된 정점의 기하구조를 GPU에서 생성, 파괴, 확장 출력 : 동차 절단 공간에 있는 정점 기하 스트림 : 기하 셰이더의 출력을 메모리 버퍼에 저장 후 나중에 활용 가능 절단 시야 절두체.. 2024. 2. 8.
5.10 래스터화, 뷰포트, 후면 선별 래스터화 단계 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 오브젝트의 전면만 렌더링 해도 후면쪽은 관찰자가 볼 수 없고 파이프 라인.. 2024. 2. 8.
5.7 테셀레이션, 기하 셰이더, 절단 테셀레이션 메시의 삼각형들을 세분 하게 새로운 삼각형들을 만드는 과정 새 삼각형들은 새로운 위치에 이동 하고 세부적인 특징(Detail)을 만들어 낼 수있다. 장점 카메라에 가까운 삼각형들에게는 테셀레이션 적용 세부도 높이고, 멀리 있는 삼각형은 비 적용 메모리에 저 다각형 (low- poly) 를 즉석에서 추가함으로써 메모리 절약 애니메이션 및 물리 처리는 같은 연산은 단순한 저다각형 메시로 수행 렌더링 시에 테셀레이션 적용 해서 고 다가가형 메시를 렌더링 단점 위 단계 처럼 새 기하구조를 CPU 메모리에서 GPU 메모리로 올리는 것은 느린 연산 CPU 에서 테셀레이션 계산은 CPU 부담 Directx 11버전에서 도입 테셀레이션 구현 순서 CPU에서 삼각형 분할 새 기하구조 생성 새 기하구조를 GPU.. 2024. 2. 8.