Tutoriales de código D3D12

En esta sección se proporciona código para escenarios de ejemplo. Muchos de los tutoriales proporcionan detalles sobre qué codificación es necesaria para agregarse a un ejemplo básico, para evitar repetir el código de componente básico para cada escenario.

Para obtener el componente más básico, consulte la sección Creación de un componente básico de Direct3D 12 . En los siguientes tutoriales se describen escenarios más avanzados.

En esta sección

Tema Descripción
D2D con D3D11on12
En el ejemplo D3D1211on12 se muestra cómo representar contenido D2D a través de contenido D3D12 compartiendo recursos entre un dispositivo basado en 11 y un dispositivo basado en 12.
Simulación de la gravedad de n-cuerpos de varios motores
En el ejemplo D3D12nBodyGravity se muestra cómo realizar el trabajo de proceso de forma asincrónica. El ejemplo pone en marcha una serie de subprocesos cada uno con una cola de comandos de proceso y programa el trabajo de proceso en la GPU que realiza una simulación de gravedad de n cuerpos. Cada subproceso funciona en dos búferes llenos de datos de posición y velocidad. Con cada iteración, el sombreador de proceso lee la posición actual y los datos de velocidad de un búfer y escribe la siguiente iteración en el otro búfer. Cuando se completa la iteración, el sombreador de proceso intercambia qué búfer es el SRV para leer los datos de posición/velocidad y cuál es el UAV para escribir actualizaciones de posición y velocidad cambiando el estado del recurso en cada búfer.
Consultas de predicación
En el ejemplo D3D12PredicationQueries se muestra la selección de oclusión mediante montones de consulta y predicación de DirectX 12. En el tutorial se describe el código adicional necesario para ampliar el ejemplo HelloConstBuffer para controlar las consultas de predicación.
Indexado dinámico mediante HLSL 5.1
En el ejemplo D3D12DynamicIndexing se muestran algunas de las nuevas características de HLSL disponibles en Shader Model 5.1 ( especialmente la indexación dinámica y las matrices sin enlazar) para representar la misma malla varias veces, cada vez que se representa con un material seleccionado dinámicamente. Con la indexación dinámica, los sombreadores ahora pueden indexar en una matriz sin conocer el valor del índice en tiempo de compilación. Cuando se combina con matrices sin enlazar, esto agrega otro nivel de direccionamiento indirecto y flexibilidad para los autores de sombreador y las canalizaciones de arte.
Dibujo indirecto y selección de GPU
En el ejemplo D3D12ExecuteIndirect se muestra cómo usar comandos indirectos para dibujar contenido. También muestra cómo se pueden manipular estos comandos en la GPU en un sombreador de proceso antes de que se emitan.

Guía de programación de Direct3D 12

Tutoriales de vídeo de aprendizaje avanzado de DirectX

Ejemplo de código en la referencia de D3D12

Ejemplos de trabajo