Bagikan melalui


struktur D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS (d3d12.h)

Mendefinisikan input untuk operasi build struktur akselerasi raytracing. Struktur ini digunakan oleh ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure dan ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo.

Sintaks

typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE        Type;
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
  UINT                                                NumDescs;
  D3D12_ELEMENTS_LAYOUT                               DescsLayout;
  union {
    D3D12_GPU_VIRTUAL_ADDRESS            InstanceDescs;
    const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
    const D3D12_RAYTRACING_GEOMETRY_DESC const * * ppGeometryDescs;
  };
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;

Anggota

Type

Jenis struktur akselerasi yang akan dibangun.

Flags

Bendera build.

NumDescs

Jika JenisD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL, nilai ini adalah jumlah instans, yang ditata berdasarkan DescsLayout.

Jika JenisD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL, nilai ini adalah jumlah elemen yang disebut oleh pGeometryDescs atau ppGeometryDescs. Bidang mana yang digunakan tergantung pada DescsLayout.

DescsLayout

Bagaimana deskripsi geometri ditentukan; baik array deskripsi atau array pointer ke deskripsi.

InstanceDescs

Jika JenisD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL, ini mengacu pada struktur numDescsD3D12_RAYTRACING_INSTANCE_DESC dalam memori GPU yang menjelaskan instans. Setiap instans harus diselaraskan ke 16 byte, yang didefinisikan sebagai D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENT.

Jika Jenis tidak D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL, parameter ini tidak digunakan.

Jika DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY, InstanceDescs menunjuk ke array deskripsi instans dalam memori GPU.

Jika DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS, InstanceDescs menunjuk ke array dalam memori GPU D3D12_GPU_VIRTUAL_ADDRESS pointer ke deskripsi instans.

Memori yang ditujukan harus dalam status D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.

pGeometryDescs

Jika JenisD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL, dan DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY, bidang ini digunakan dan menunjuk ke struktur D3D12_RAYTRACING_GEOMETRY_DESCnumDescs yang berdekatan pada CPU, yang menjelaskan geometri individual.

Jika Jenis tidak D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL atau DescsLayout tidak D3D12_ELEMENTS_LAYOUT_ARRAY, parameter ini tidak digunakan.

ppGeometryDescs

Jika JenisD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL, dan DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS, bidang ini digunakan dan menunjuk ke array pointer NumDescs untuk D3D12_RAYTRACING_GEOMETRY_DESC struktur pada CPU, yang menjelaskan geometri individual.

Keterangan

Ketika digunakan dengan GetRaytracingAccelerationStructurePrebuildInfo, yang benar-benar melakukan build, parameter apa pun yang direferensikan melalui D3D12_GPU_VIRTUAL_ADDRESS (alamat dalam memori GPU), seperti InstanceDescs, tidak akan diakses oleh operasi. Jadi memori ini belum perlu diinisialisasi atau berada dalam status sumber daya tertentu. Apakah alamat GPU null atau tidak dapat diperiksa oleh operasi, meskipun pointer tidak didereferensikan.

Persyaratan

Persyaratan Nilai
Header d3d12.h