Пошаговые руководства по коду D3D12

В этом разделе представлен код для примеров сценариев. Многие из пошагов содержат сведения о том, какое кодирование необходимо добавить в базовый пример, чтобы избежать повторения базового кода компонента для каждого сценария.

Самый простой компонент см. в разделе Создание базового компонента Direct3D 12 . В следующих пошаговых руководствах описаны более сложные сценарии.

В этом разделе

Раздел Описание
D2D и D3D11on12
В примере D3D1211on12 показано, как отображать содержимое D2D поверх содержимого D3D12 путем совместного использования ресурсов между 11 и 12 устройствами.
Моделирование гравитации для нескольких тел в нескольких движках
В примере D3D12nBodyGravity показано, как выполнять вычислительные операции асинхронно. Пример запускает несколько потоков с очередью команд вычислений и планирует вычислительные работы на GPU, который выполняет имитацию гравитации n-тела. Каждый поток работает с двумя буферами, полными данных о положении и скорости. При каждой итерации шейдер вычислений считывает данные о текущем положении и скорости из одного буфера и записывает следующую итерацию в другой буфер. После завершения итерации вычислительный шейдер переключает буфер SRV для чтения данных о положении и скорости, а какой — для записи обновлений положения или скорости путем изменения состояния ресурсов в каждом буфере.
Запросы предикации
Пример D3D12PredicationQueries демонстрирует отбраковку окклюзии с помощью кучи запросов DirectX 12 и предикаций. В этом пошаговом руководстве описывается дополнительный код, необходимый для расширения примера HelloConstBuffer для обработки запросов предикаций.
Динамическое индексирование с помощью HLSL 5.1
Пример D3D12DynamicIndexing демонстрирует некоторые новые функции HLSL, доступные в модели шейдеров 5.1, в частности динамическое индексирование и неограниченные массивы, для многократной отрисовки одной и той же сетки, каждый раз отрисовки с динамически выбранным материалом. Благодаря динамическому индексации шейдеры теперь могут индексироваться в массиве, не зная значения индекса во время компиляции. В сочетании с неограниченными массивами это добавляет еще один уровень косвенности и гибкости для авторов шейдеров и конвейеров искусства.
Косвенная прорисовка и отбрасывание с помощью GPU
В примере D3D12ExecuteIndirect показано, как использовать косвенные команды для рисования содержимого. В нем также показано, как этими командами можно управлять на GPU в вычислительном шейдере перед их выполнением.

Руководство по программированию для Direct3D 12

Видеоруководы по расширенному обучению по DirectX

Пример кода в справочнике по D3D12

Рабочие примеры