D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 구조체(d3d12.h)
광선 추적 가속 구조 빌드 작업에 대한 입력을 정의합니다. 이 구조체는 ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure 및 ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo에서 사용됩니다.
구문
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;
멤버
Type
빌드할 가속 구조의 형식입니다.
Flags
빌드 플래그입니다.
NumDescs
Type이 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL 경우 이 값은 DescsLayout에 따라 배치된 인스턴스 수입니다.
Type이 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL 경우 이 값은 pGeometryDescs 또는 ppGeometryDescs에서 참조하는 요소 수입니다. 이러한 필드 중 사용되는 필드는 DescsLayout에 따라 달라집니다.
DescsLayout
기하 도형 설명을 지정하는 방법; 설명 배열 또는 설명에 대한 포인터 배열입니다.
InstanceDescs
Type이 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL 경우 인스턴스를 설명하는 GPU 메모리의 NumDescsD3D12_RAYTRACING_INSTANCE_DESC 구조를 나타냅니다. 각 instance D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENT 정의된 16바이트에 맞춰야 합니다.
Type이 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL 않으면 이 매개 변수가 사용되지 않습니다.
DescLayout이 D3D12_ELEMENTS_LAYOUT_ARRAY 경우 InstanceDescs는 GPU 메모리의 instance 설명 배열을 가리킵니다.
DescLayout이 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS 경우 InstanceDescs는 instance 설명을 가리키는 D3D12_GPU_VIRTUAL_ADDRESS 포인터의 GPU 메모리에 있는 배열을 가리킵니다.
가리키는 메모리는 상태 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 있어야 합니다.
pGeometryDescs
Type이 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL 있고 DescsLayout이 D3D12_ELEMENTS_LAYOUT_ARRAY 경우 이 필드가 사용되며 CPU의 NumDescs 연속 D3D12_RAYTRACING_GEOMETRY_DESC 구조를 가리키며 개별 기하 도형을 설명합니다.
Type이 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL 않거나 DescsLayout이 D3D12_ELEMENTS_LAYOUT_ARRAY 않으면 이 매개 변수는 사용되지 않습니다.
ppGeometryDescs
Type이 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL있고 DescsLayout이 D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS 경우 이 필드는 사용되고 NumDescs 포인터 배열을 가리키며 CPU의 D3D12_RAYTRACING_GEOMETRY_DESC 구조체를 가리키며 개별 기하 도형을 설명합니다.
설명
실제로 빌드를 수행하는 GetRaytracingAccelerationStructurePrebuildInfo와 함께 사용하면 instanceDescs와 같은 D3D12_GPU_VIRTUAL_ADDRESS(GPU 메모리의 주소)를 통해 참조되는 모든 매개 변수는 작업에 의해 액세스되지 않습니다. 따라서 이 메모리는 아직 초기화되거나 특정 리소스 상태에 있을 필요가 없습니다. 포인터가 역참조되지 않더라도 GPU 주소가 null인지 여부를 작업에서 검사할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | d3d12.h |