다음을 통해 공유


D3D12 코드 Walk-Throughs

이 섹션에서는 샘플 시나리오에 대한 코드를 제공합니다. 대부분의 연습에서는 각 시나리오에 대한 기본 구성 요소 코드를 반복하지 않도록 기본 샘플에 추가해야 하는 코딩에 대한 세부 정보를 제공합니다.

가장 기본적인 구성 요소는 기본 Direct3D 12 구성 요소 만들기 섹션을 참조하세요. 다음 연습에서는 고급 시나리오를 설명합니다.

이 섹션에서는

주제 묘사
D3D11on12 사용하여 D2D
D3D1211on12 샘플은 11 기반 디바이스와 12 기반 디바이스 간에 리소스를 공유하여 D3D12 콘텐츠에 D2D 콘텐츠를 렌더링하는 방법을 보여 줍니다.
다중 엔진 n-본문 중력 시뮬레이션
D3D12nBodyGravity 샘플은 컴퓨팅 작업을 비동기적으로 수행하는 방법을 보여 줍니다. 샘플은 컴퓨팅 명령 큐를 사용하여 각각 여러 스레드를 회전하고 n-본문 중력 시뮬레이션을 수행하는 GPU에서 컴퓨팅 작업을 예약합니다. 각 스레드는 위치 및 속도 데이터로 가득 찬 두 버퍼에서 작동합니다. 각 반복을 통해 컴퓨팅 셰이더는 한 버퍼에서 현재 위치 및 속도 데이터를 읽고 다음 반복을 다른 버퍼에 씁니다. 반복이 완료되면 컴퓨팅 셰이더는 위치/속도 데이터를 읽기 위한 SRV이고 각 버퍼의 리소스 상태를 변경하여 위치/속도 업데이트를 작성하기 위한 UAV인 버퍼를 교환합니다.
조건자 쿼리
D3D12PredicationQueries 샘플은 DirectX 12 쿼리 힙 및 조건자를 사용하여 폐색 컬링을 보여 줍니다. 이 연습에서는 조건자 쿼리를 처리하기 위해 HelloConstBuffer 샘플을 확장하는 데 필요한 추가 코드를 설명합니다.
HLSL 5.1 사용하여 동적 인덱싱
D3D12DynamicIndexing 샘플은 셰이더 모델 5.1에서 사용할 수 있는 새로운 HLSL 기능 중 일부(특히 동적 인덱싱 및 바인딩되지 않은 배열)를 보여 줍니다. 동적으로 선택된 재질로 렌더링할 때마다 동일한 메시를 여러 번 렌더링합니다. 이제 동적 인덱싱을 사용하면 셰이더가 컴파일 시간에 인덱스의 값을 알지 못하고 배열로 인덱싱할 수 있습니다. 바인딩되지 않은 배열과 결합하면 셰이더 작성자 및 아트 파이프라인에 대한 또 다른 수준의 간접 참조 및 유연성이 추가됩니다.
간접 그리기 및 GPU 컬링
D3D12ExecuteIndirect 샘플은 간접 명령을 사용하여 콘텐츠를 그리는 방법을 보여 줍니다. 또한 이러한 명령을 실행하기 전에 컴퓨팅 셰이더의 GPU에서 조작할 수 있는 방법을 보여 줍니다.

Direct3D 12 프로그래밍 가이드

DirectX 고급 학습 비디오 자습서

D3D12 참조 예제 코드

작업 샘플