Bagikan melalui


Struktur atribut persimpangan

Struktur yang dinyatakan dalam HLSL untuk mewakili atribut hit untuk persimpangan segitiga fungsi tetap atau kotak pembatas sejajar sumbu untuk persimpangan primitif prosedural.

Persimpangan segitiga fungsi tetap

Struktur berikut dinyatakan dalam HLSL untuk mewakili atribut hit untuk persimpangan segitiga fungsi tetap:

struct BuiltInTriangleIntersectionAttributes
{
    float2 barycentrics;
};

Setiap shader hit dan hit terdekat yang dipanggil menggunakan persimpangan segitiga fungsi tetap harus menggunakan struktur ini untuk atribut hit. Atribut tertentu a0, a1 dan a2 untuk 3 simpul segitiga, barycentrics.x adalah berat untuk a1 dan barycentrics.y adalah berat untuk a2. Misalnya, aplikasi dapat menginterpolasi dengan melakukan: a = a0 + barycentrics.x * (a1-a0) + barycentrics.y* (a2 – a0).

Kotak pembatas rata sumbu untuk persimpangan primitif prosedural

Ketika kotak pembatas sejajar sumbu digunakan untuk persimpangan dengan primitif prosedural, shader persimpangan dipicu. Shader tersebut menyediakan struktur atribut persimpangan yang ditentukan pengguna ke panggilan ReportHit . Setiap shader hit dan hit terdekat yang terikat dalam grup hit yang sama dengan shader persimpangan ini harus menggunakan struktur yang sama untuk atribut hit, bahkan jika atribut tidak dirujuk. Ukuran struktur atribut maksimum adalah 32 byte, didefinisikan sebagai D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES.