Sdílet prostřednictvím


Struktura atributů průniku

Struktura deklarovaná v HLSL, která představuje atributy hitů pro průsečík trojúhelníku s pevnou funkcí nebo osově zarovnaný ohraničující rámeček pro procedurální primitivní průnik.

Průsečík s pevnou funkcí

Následující struktura je deklarována v HLSL, aby reprezentovala atributy hit pro průsečík trojúhelníku s pevnou funkcí:

struct BuiltInTriangleIntersectionAttributes
{
    float2 barycentrics;
};

Všechny hity a nejbližší hit shadery vyvolané pomocí průsečíku trojúhelníku s pevnou funkcí musí používat tuto strukturu pro atributy hit. Dané atributy a0, a1 a a2 pro 3 vrcholy trojúhelníku, barycentrics.x je váha pro a1 a barycentrics.y je váha pro a2. Aplikace může například interpolovat pomocí: a = a0 + barycentrics.x * (a1-a0) + barycentrics.y* (a2 – a0).

Osou zarovnaný ohraničující rámeček pro procedurální primitivní průnik

Když se pro průnik s procedurálními primitivy používají ohraničující rámečky zarovnané osou, aktivuje se shader průniku. Tento shader poskytuje uživatelem definovanou strukturu atributů průniku volání ReportHit . Všechny hity a nejbližší hit shadery vázané ve stejné skupině hitů s tímto shaderem průniku musí používat stejnou strukturu pro atributy hitu, i když na atributy nejsou odkazovány. Maximální velikost struktury atributů je 32 bajtů definovaných jako D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES.