struktur D3D12_RAYTRACING_INSTANCE_DESC (d3d12.h)
Menjelaskan instans struktur akselerasi raytracing yang digunakan dalam memori GPU selama proses build struktur akselerasi.
Sintaks
typedef struct D3D12_RAYTRACING_INSTANCE_DESC {
FLOAT Transform[3][4];
UINT InstanceID : 24;
UINT InstanceMask : 8;
UINT InstanceContributionToHitGroupIndex : 24;
UINT Flags : 8;
D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
} D3D12_RAYTRACING_INSTANCE_DESC;
Anggota
Transform[3]
Jenis: FLOAT [3][4]
Matriks transformasi 3x4 dalam tata letak utama baris yang mewakili transformasi instans ke dunia. Implementasi mengubah sinar, dibandingkan dengan mengubah semua geometri atau AABB.
Catatan
Tata letak Transform
adalah perubahan urutan bagaimana matriks affine biasanya disimpan dalam memori. Alih-alih empat vektor 3, Transform
ditata sebagai tiga vektor 4.
InstanceID
Jenis: UINT : 24
Nilai 24-bit arbitrer yang dapat diakses menggunakan InstanceID
fungsi intrinsik dalam jenis shader yang didukung.
InstanceMask
Jenis: UINT : 8
Masker 8-bit yang ditetapkan ke instans, yang dapat digunakan untuk menyertakan/menolak grup instans berdasarkan per sinar. Jika nilainya nol, maka instans tidak akan pernah disertakan, jadi biasanya ini harus diatur ke beberapa nilai bukan nol. Untuk informasi selengkapnya lihat, InstanceInclusionMask
parameter ke fungsi TraceRay .
InstanceContributionToHitGroupIndex
Jenis: UINT : 24
Nilai 24-bit arbitrer yang mewakili kontribusi per instans untuk ditambahkan ke dalam pengindeksan tabel shader untuk memilih grup hit yang akan digunakan.
Flags
Jenis: UINT : 8
Masker 8-bit yang mewakili bendera dari D3D12_RAYTRACING_INSTANCE_FLAGS untuk diterapkan ke instans.
AccelerationStructure
Jenis: D3D12_GPU_VIRTUAL_ADDRESS
Alamat struktur akselerasi tingkat bawah yang sedang di-instans. Alamat harus diratakan ke 256 byte, didefinisikan sebagai D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT. Setiap struktur akselerasi yang ada yang diteruskan di sini akan sudah diperlukan untuk ditempatkan dengan keselarasan tersebut.
Memori yang ditunjukkan harus dalam status D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
Keterangan
Definisi struct C++ ini berguna jika Anda membuat data instans pada CPU terlebih dahulu, lalu mengunggah ke GPU. Tetapi aplikasi Anda juga gratis untuk menghasilkan deskripsi instans langsung ke memori GPU (dari shader komputasi, misalnya) mengikuti tata letak yang sama.
Persyaratan
Header | d3d12.h |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk