Bagikan melalui


struktur D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054 (d3d12umddi.h)

Menjelaskan geometri segitiga pelacakan sinar.

Sintaks

typedef struct D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054 {
  D3D12DDI_GPU_VIRTUAL_ADDRESS            ColumnMajorTransform3x4;
  DXGI_FORMAT                             IndexFormat;
  DXGI_FORMAT                             VertexFormat;
  UINT                                    IndexCount;
  UINT                                    VertexCount;
  D3D12DDI_GPU_VIRTUAL_ADDRESS            IndexBuffer;
  D3D12DDI_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
} D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054;

Anggota

ColumnMajorTransform3x4

Alamat matriks transformasi affine 3x4 dalam tata letak utama baris yang akan diterapkan ke simpul di VertexBuffer selama build struktur akselerasi. Konten VertexBuffer tidak dimodifikasi. Jika format vertex 2D digunakan, transformasi diterapkan dengan komponen vertex ketiga yang diasumsikan nol.

Jika ColumnMajorTransform3x4 adalah NULL, simpul tidak akan diubah. Menggunakan ColumnMajorTransform3x4 dapat mengakibatkan peningkatan persyaratan komputasi dan/atau memori untuk build struktur akselerasi.

Memori yang ditujukan harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.

IndexFormat

DXGI_FORMAT, mewakili format indeks di IndexBuffer. Nilai ini harus salah satu dari yang berikut ini:

  • DXGI_FORMAT_UNKNOWN (ketika IndexBuffer adalah NULL)
  • DXGI_FORMAT_R32_UINT
  • DXGI_FORMAT_R16_UINT

VertexFormat

DXGI_FORMAT, mewakili format simpul (posisi) di VertexBuffer. Nilai ini harus salah satu dari yang berikut ini:

  • DXGI_FORMAT_R32G32_FLOAT (komponen ketiga diasumsikan 0)
  • DXGI_FORMAT_R32G32B32_FLOAT
  • DXGI_FORMAT_R16G16_FLOAT (komponen ketiga diasumsikan 0)
  • DXGI_FORMAT_R16G16B16A16_FLOAT

IndexCount

Jumlah indeks di IndexBuffer. Harus 0 jika IndexBuffer adalah NULL.

VertexCount

Jumlah simpul (posisi) di VertexBuffer.

IndexBuffer

Array indeks vertex. Jika NULL, segitiga tidak diindeks. Alamat harus diratakan ke ukuran IndexFormat.

Memori yang ditujukan harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.

VertexBuffer

Array simpul termasuk langkah. Perataan pada alamat dan langkah harus kelipatan ukuran komponen, artinya, 4 byte untuk format dengan komponen 32-bit dan 2 byte untuk format dengan komponen 16-bit. Tidak ada batasan pada langkah (sedangkan ada batas untuk grafik), selain itu 32-bit bawah dari nilai adalah semua yang digunakan. Ini berarti bahwa bidang adalah UINT64 murni untuk membuat bidang tetangga selaras dengan bersih dan jelas di mana-mana. Setiap posisi puncak diharapkan berada di alamat awal rentang langkah dan ruang berlebih diabaikan oleh build struktur akselerasi. Ruang berlebih ini mungkin berisi data aplikasi lain seperti atribut vertex, yang bertanggung jawab untuk diambil secara manual dalam shader, baik itu diselingi dalam buffer vertex atau di tempat lain.

Memori yang ditujukan harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.

Keterangan

Geometri yang ditujukan oleh struktur ini selalu dalam daftar segitiga dari (bentuk terindeks atau tidak terindeks). Strip tidak didukung.

Persyaratan

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