Software/DirectX
-
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동기화를 시켜주었다. 하지만 이렇게 프레임마다 동기화 작..
-
9. D3D 실제 구현Software/DirectX 2024. 5. 24. 09:41
Table of Contents1. 정점 형식 정의와 레이아웃(Layout)2. 정점 버퍼(Vertex Buffer)와 정점 쉐이더(Vertex Shader)3. 픽셀 쉐이더4. 상수 버퍼 (Const Buffer)5. 루트서명과 서술자 테이블6. 셰이더의 컴파일7. 래스터라이징 단계8. 파이프라인 객체9. 기하구조 보조 구조체1. 정점 형식 정의와 레이아웃(Layout)정점정보에 위치 이외에 정점 정보(텍스쳐나 색상, 법선벡터)등을 담을 수 있다는 것을 배웠다.정점 구조체를 사용자 임의로 정의하고 나면 Dx에 해당 구조체의 성분이 무엇을 의미하는지 알려줘야한다. 이 과정을 Layout description이라고 한다,. struct Vertex // 정점 구조체 예시{ XMFloat3..
-
8. 테셀레이션 ( Tessellation )과 기하 쉐이더 ( Geometry shader )Software/DirectX 2024. 5. 24. 09:39
Table of Contents1. 테셀레이션(Tessellation)2. 기하 셰이더 단계( Geometry shader stage)3. 절단 (Clipping)1. 테셀레이션(Tessellation)테셀레이션은 D3D11버전 부터 장착된 유용한 기능이다.테셀레이션은 메시 정보에 주어진 삼각형을 더 잘게 쪼개서 새로운 삼각형들을 만드는 과정이라고 볼 수 있다. 테셀레이션의 장점카메라 가까운 메쉬에만 테셀레이션을 적용하는 세부수준(Level of detail (LOD방식))방식으로 원근감을 주며 계산량 절약 가능 (디폴트 도형은 로우폴리(low poly)로 처리)메모리에 로우폴리곤 메쉬들만 잔뜩 올려놓고 즉석 삼각형 추가로 메모리 절약할 수 있다.애니메이션이나 물리처리같은 연산을 로우폴리 메시로 진행하고..