Bagikan melalui


enumerasi D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS (d3d12umddi.h)

Menentukan bendera build struktur akselerasi pelacakan sinar.

Sintaks

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
} ;

Konstanta

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
Tidak ada opsi yang ditentukan untuk build struktur akselerasi.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
Bangun struktur akselerasi sehingga mendukung pembaruan di masa mendatang, melalui bendera D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, alih-alih aplikasi harus sepenuhnya dibangun kembali. Opsi ini dapat mengakibatkan peningkatan konsumsi memori dan waktu build, dan performa pelacakan sinar yang lebih rendah. Namun, pembaruan di masa mendatang harus lebih cepat daripada membangun struktur akselerasi yang setara dari awal.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
Memungkinkan opsi untuk memadatkan struktur akselerasi dengan memanggil CopyRaytracingAccelerationStructure dengan mode ringkas. Lihat D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE.
Opsi ini dapat mengakibatkan peningkatan konsumsi memori dan waktu build. Namun, setelah pemadatan di masa depan, struktur akselerasi yang dihasilkan harus menggunakan jejak memori yang lebih kecil, tidak lebih besar dari membangun struktur akselerasi dari awal.

Bendera ini kompatibel dengan semua bendera lainnya. Jika ditentukan sebagai bagian dari pembaruan struktur akselerasi, struktur akselerasi sumber juga harus dibangun dengan bendera ini.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
Membangun struktur akselerasi berkualitas tinggi yang memaksimalkan performa pelacakan sinar dengan mengorbankan waktu build tambahan. Aturan praktis yang kasar adalah bahwa implementasi harus memakan waktu sekitar 2-3 kali waktu build default untuk mendapatkan performa pelacakan yang lebih baik.

Bendera ini direkomendasikan untuk geometri statis khususnya. Ini juga kompatibel dengan semua bendera lain kecuali untuk D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
Membangun struktur akselerasi kualitas yang lebih rendah, memperdagangkan performa pelacakan sinar untuk kecepatan build. Aturan praktis yang kasar adalah bahwa implementasi harus memakan waktu sekitar 1/2 hingga 1/3 dari waktu build default pada pengorbanan dalam performa pelacakan.

Bendera ini kompatibel dengan semua bendera lain kecuali untuk D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
Minimalkan jumlah memori awal yang digunakan selama build struktur akselerasi serta ukuran hasilnya. Opsi ini dapat mengakibatkan peningkatan waktu build dan/atau waktu pelacakan sinar.

Ini ortogonal untuk bendera D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION, dan pemadatan struktur akselerasi eksplisit yang diaktifkannya. Menggabungkan bendera dapat berarti struktur akselerasi awal serta hasil pemadatannya menggunakan lebih sedikit memori.
Dampak penggunaan bendera ini untuk build tercermin dalam hasil memanggil GetRaytracingAccelerationStructurePrebuildInfo sebelum melakukan build untuk mengambil persyaratan memori untuk build.

Bendera ini kompatibel dengan semua bendera lainnya.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
Lakukan pembaruan struktur akselerasi, dibandingkan dengan membangun dari awal. Ini lebih cepat daripada build penuh, tetapi dapat berdampak negatif pada performa pelacakan sinar, terutama jika posisi objek yang mendasarinya telah berubah secara signifikan dari build asli struktur akselerasi sebelum pembaruan.

Jika alamat struktur akselerasi sumber dan tujuan identik, pembaruan dilakukan di tempat. Rentang alamat sumber dan tujuan lainnya yang tumpang tindih tidak valid. Untuk sumber dan tujuan yang tidak tumpang tindih, struktur akselerasi sumber tidak dimodifikasi. Persyaratan memori untuk struktur akselerasi output sama dengan dalam struktur akselerasi input.

Bendera ini kompatibel dengan semua bendera lainnya. D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE mungkin atau mungkin tidak diatur, tidak ada bedanya karena pembaruan akan terus diizinkan. Pilihan bendera lainnya, selain D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE dan D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, harus cocok dengan bendera dalam struktur akselerasi sumber.

Pembaruan struktur akselerasi dapat dilakukan secara berturut-turut tanpa batas. Struktur akselerasi sumber harus dibuat dengan D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE, D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, atau jika dikloning, struktur akselerasi asal harus telah diproduksi dengan salah satu cara ini. Pada dasarnya, struktur akselerasi harus dibangun dengan harapan bahwa pembaruan dapat terjadi.

Persyaratan

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