Bagikan melalui


enumerasi D3D12_RAYTRACING_GEOMETRY_FLAGS (d3d12.h)

Menentukan bendera untuk geometri raytracing dalam struktur D3D12_RAYTRACING_GEOMETRY_DESC .

Sintaks

typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS {
  D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
  D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
  D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
} ;

Konstanta

 
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE
Nilai: 0
Tidak ada opsi yang ditentukan.
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE
Nilai: 0x1
Ketika sinar menemukan geometri ini, geometri bertindak seolah-olah tidak ada shader hit yang ada. Disarankan agar aplikasi menggunakan bendera ini secara liberal, karena dapat memungkinkan pengoptimalan pemrosesan sinar penting. Perhatikan bahwa perilaku ini dapat ditimpa per instans dengan D3D12_RAYTRACING_INSTANCE_FLAGS dan berdasarkan per sinar menggunakan bendera sinar di TraceRay.
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
Nilai: 0x2
Secara default, sistem bebas untuk memicu shader hit lebih dari sekali untuk persimpangan ray-primitif tertentu. Fleksibilitas ini membantu meningkatkan efisiensi traversal struktur akselerasi dalam kasus tertentu. Misalnya, jika struktur akselerasi diimplementasikan secara internal dengan volume pembatas, implementasi mungkin merasa bermanfaat untuk menyimpan segitiga yang relatif panjang dalam beberapa kotak pembatas daripada satu kotak yang lebih besar. Namun, beberapa kasus penggunaan aplikasi mengharuskan persimpangan dilaporkan ke shader hit paling banyak sekali. Bendera ini memungkinkan jaminan tersebut untuk geometri yang diberikan, berpotensi dengan beberapa dampak performa.

Bendera ini berlaku untuk semua jenis geometri.

Persyaratan

Persyaratan Nilai
Header d3d12.h