enumeración D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS (d3d12umddi.h)

Especifica las marcas de compilación de la estructura de aceleración de seguimiento de rayos.

Sintaxis

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
} ;

Constantes

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
No se han especificado opciones para la compilación de la estructura de aceleración.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
Compile la estructura de aceleración de modo que admita actualizaciones futuras, a través de la marca D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, en lugar de que la aplicación tenga que volver a compilar por completo. Esta opción puede dar lugar a un mayor consumo de memoria y tiempos de compilación, y a reducir el rendimiento del seguimiento de rayos. Sin embargo, las actualizaciones futuras deben ser más rápidas que crear la estructura de aceleración equivalente desde cero.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
Habilita la opción para compactar la estructura de aceleración mediante una llamada a CopyRaytracingAccelerationStructure con el modo compacto. Consulte D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE.
Esta opción puede dar lugar a un mayor consumo de memoria y tiempos de compilación. Sin embargo, después de la compactación futura, la estructura de aceleración resultante debe consumir una superficie de memoria más pequeña, no mayor que la creación de la estructura de aceleración desde cero.

Esta marca es compatible con todas las demás marcas. Si se especifica como parte de una actualización de la estructura de aceleración, la estructura de aceleración de origen también debe haberse compilado con esta marca.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
Construya una estructura de aceleración de alta calidad que maximice el rendimiento del seguimiento de rayos a costa del tiempo de compilación adicional. Una regla general aproximada es que la implementación debe tardar aproximadamente entre 2 y 3 veces el tiempo de compilación predeterminado para obtener un mejor rendimiento de seguimiento.

Esta marca se recomienda para la geometría estática en particular. También es compatible con todas las demás marcas, excepto por D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
Construir una estructura de aceleración de menor calidad, operar el rendimiento del seguimiento de rayos para la velocidad de compilación. Una regla general aproximada es que la implementación debe tardar aproximadamente entre 1/2 y 1/3 del tiempo de compilación predeterminado en un sacrificio en el rendimiento del seguimiento.

Esta marca es compatible con todas las demás marcas, excepto para D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
Minimice la cantidad de memoria temporal usada durante la compilación de la estructura de aceleración, así como el tamaño del resultado. Esta opción puede dar lugar a un aumento de los tiempos de compilación o los tiempos de seguimiento de rayos.

Esto es ortogonal a la marca D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION y compactación explícita de la estructura de aceleración que habilita. La combinación de las marcas puede significar tanto la estructura de aceleración inicial como el resultado de la compactación que usa menos memoria.
El impacto del uso de esta marca para una compilación se refleja en el resultado de llamar a GetRaytracingAccelerationStructurePrebuildInfo antes de realizar la compilación para recuperar los requisitos de memoria de la compilación.

Esta marca es compatible con todas las demás marcas.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
Realice una actualización de la estructura de aceleración, en lugar de compilar desde cero. Esto es más rápido que una compilación completa, pero puede afectar negativamente al rendimiento del seguimiento de rayos, especialmente si las posiciones de los objetos subyacentes han cambiado significativamente a partir de la compilación original de la estructura de aceleración antes de las actualizaciones.

Si las direcciones de las estructuras de aceleración de origen y destino son idénticas, la actualización se realiza en contexto. Cualquier otra superposición de intervalos de direcciones del origen y el destino no es válido. En el caso de los destinos y el origen no superpuestos, la estructura de aceleración de origen no se modifica. El requisito de memoria para la estructura de aceleración de salida es el mismo que en la estructura de aceleración de entrada.

Esta marca es compatible con todas las demás marcas. D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE puede o no establecerse, no hace ninguna diferencia porque se seguirán permitiendo las actualizaciones. Las demás selecciones de marcas, aparte de D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE y D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, deben coincidir con las marcas de la estructura de aceleración de origen.

Las actualizaciones de la estructura de aceleración se pueden realizar en sucesión ilimitada. La estructura de aceleración de origen debe haberse creado con D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE, D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE o, si se clona de otro modo, la estructura de aceleración de origen debe haberse producido de una de estas maneras. Básicamente, la estructura de aceleración debía haberse construido con la expectativa de que se puedan producir actualizaciones.

Requisitos

   
Cliente mínimo compatible Windows 10, versión 1809
Header d3d12umddi.h