Software
-
12. 조명Software/DirectX 2024. 5. 24. 09:53
Table of Contents1. 빛과 재질의 상호작용 1.1 재질(material) 1.2 국소 조명 모형(local illumination model) 1.3 전역 조명 모형(global illumination model)2. 법선 벡터(Normal Vector) 2.1 정점 법선 평균 기법(vertex noraml averaging) 2.2 변환행렬 적용 법선 벡터3. 빛 벡터(light vector)4. 람베르트 코싸인 법칙5. 분산 조명(diffuse reflection)6. 주변 조명(Ambient light)7. 반영 조명(Specular reflection)8. 프레넬 효과(Fresnel effect)9. 셰이더에서의 빛 계산1. 빛과 재질의 상호작용이 전까지의 공부에서는 정점의..
-
11. D3D 그리기 연산2Software/DirectX 2024. 5. 24. 09:50
Table of Contents1. 지형2. 파도와 동적 정점버퍼1. 지형삼각형 격자 메시 하나를 생성한 후, 정점들의 높이를 적절히 조정해서 지형을 만들 수 있다.격자 정점정보 생성, 격자 색인정보 생성, y값 추출해서 높이 조절하는 순서로 지형을 만든다. 1-1 격자 정점 및 색인 생성MeshData GeometryGenerator::CreateGrid(float width, float depth, uint32 m, uint32 n){ MeshData meshData; uint32 vertexCount = m*n; uint32 faceCount = (m-1)*(n-1)*2; float halfWidth = 0.5f*width; float halfDepth = 0.5f*d..
-
10. D3D 그리기 연산Software/DirectX 2024. 5. 24. 09:48
Table of Contents1. 프레임 자원(Frame Resource)2. 렌더 항목(Render Items)3. 패스 상수버퍼(Pass Const Buffer)4. 도형 기하 구조 4.1. 육면체 기하 구조 4.2. 원기둥 기하 구조 4.3. 구 기하 구조1. 프레임 자원(Frame Resource)앞선 내용들에서 공부했듯, CPU와 GPU는 병렬로 움직이며 최적의 성능을 위해서는 끊임없이 작동해야한다. 하지만 우리는 GPU가 명령대기열을 처리하기 전에 CPU가 명령할당자를 재설정하거나, 그리기를 마치기 전에 상수버퍼를 갱신해서 다른 자료를 참조하는 것을 방지하기 위해 프레임마다 FlushCommandQueue를 호출해서 CPU와 GPU동기화를 시켜주었다. 하지만 이렇게 프레임마다 동기화 작..