Función TraceRay

Envía un rayo a una búsqueda de aciertos en una estructura de aceleración.

Syntax

Esta definición de función intrínseca es equivalente a la siguiente plantilla de función:

Template<payload_t>
void TraceRay(RaytracingAccelerationStructure AccelerationStructure,
              uint RayFlags,
              uint InstanceInclusionMask,
              uint RayContributionToHitGroupIndex,
              uint MultiplierForGeometryContributionToHitGroupIndex,
              uint MissShaderIndex,
              RayDesc Ray,
              inout payload_t Payload);

Parámetros

AccelerationStructure

Estructura de aceleración de nivel superior que se va a usar. Si se especifica una estructura de aceleración NULL, se fuerza un error.

RayFlags

Combinación válida de valores de ray_flag . El sistema propaga solo las marcas de rayos definidas, es decir, son visibles para la intrínseca del sombreador RayFlags .

InstanceInclusionMask

Entero sin signo, los 8 bits inferiores de los cuales se usan para incluir o rechazar instancias de geometry basadas en InstanceMask en cada instancia. Por ejemplo:

if(!((InstanceInclusionMask & InstanceMask) & 0xff)) { //ignore intersection }

RayContributionToHitGroupIndex

Entero sin signo que especifica el desplazamiento que se va a agregar a los cálculos de direccionamiento dentro de las tablas de sombreador para la indexación de grupos de aciertos. Solo se usan los 4 bits inferiores de este valor.

MultiplierForGeometryContributionToHitGroupIndex

Entero sin signo que especifica el paso que se va a multiplicar por GeometryContributionToHitGroupIndex, que es solo el índice basado en 0 que la aplicación proporcionó la geometría en su estructura de aceleración de nivel inferior. Solo se usan los 16 bits inferiores de este valor multiplicador.

MissShaderIndex

Entero sin signo que especifica el índice del sombreador que falta dentro de una tabla de sombreador.

Ray

Un RayDesc que representa el rayo que se va a rastrear.

Payload

Una carga de rayos definida por el usuario a la que se ha accedido tanto para la entrada como la salida por parte de los sombreadores invocados durante el raytracing. Una vez completado TraceRay , el autor de la llamada también puede acceder a la carga útil.

Valor devuelto

void

Comentarios

Se puede llamar a esta función desde los siguientes tipos de sombreador raytracing:

Consulte también

Reference de HLSL de Direct3D 12 Raytracing