enumerasi D3D12DDI_RAYTRACING_GEOMETRY_FLAGS (d3d12umddi.h)

Menentukan bendera geometri pelacakan sinar.

Sintaks

typedef enum D3D12DDI_RAYTRACING_GEOMETRY_FLAGS {
  D3D12DDI_RAYTRACING_GEOMETRY_FLAG_NONE,
  D3D12DDI_RAYTRACING_GEOMETRY_FLAG_OPAQUE,
  D3D12DDI_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
} ;

Konstanta

 
D3D12DDI_RAYTRACING_GEOMETRY_FLAG_NONE
Tidak ada opsi yang ditentukan.
D3D12DDI_RAYTRACING_GEOMETRY_FLAG_OPAQUE
Ketika sinar menemukan geometri ini, geometri bertindak seolah-olah tidak ada shader hit yang ada. Disarankan untuk menggunakan bendera ini secara liberal, karena dapat memungkinkan pengoptimalan pemrosesan sinar penting.

CATATAN

Perilaku ini dapat ditimpa per instans dengan D3D12DDI_RAYTRACING_INSTANCE_FLAGS, dan berdasarkan per sinar menggunakan bendera Ray di TraceRay().

D3D12DDI_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
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

   
Klien minimum yang didukung Windows 10, version 1809
Header d3d12umddi.h