Share via


D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 구조체(d3d12.h)

광선 추적 가속 구조 빌드 작업에 대한 입력을 정의합니다. 이 구조체는 ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructureID3D12Device5::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

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL 경우 이 값은 DescsLayout에 따라 배치된 인스턴스 수입니다.

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL 경우 이 값은 pGeometryDescs 또는 ppGeometryDescs에서 참조하는 요소 수입니다. 이러한 필드 중 사용되는 필드는 DescsLayout에 따라 달라집니다.

DescsLayout

기하 도형 설명을 지정하는 방법; 설명 배열 또는 설명에 대한 포인터 배열입니다.

InstanceDescs

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL 경우 인스턴스를 설명하는 GPU 메모리의 NumDescsD3D12_RAYTRACING_INSTANCE_DESC 구조를 나타냅니다. 각 instance D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENT 정의된 16바이트에 맞춰야 합니다.

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL 않으면 이 매개 변수가 사용되지 않습니다.

DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY 경우 InstanceDescs는 GPU 메모리의 instance 설명 배열을 가리킵니다.

DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS 경우 InstanceDescs는 instance 설명을 가리키는 D3D12_GPU_VIRTUAL_ADDRESS 포인터의 GPU 메모리에 있는 배열을 가리킵니다.

가리키는 메모리는 상태 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 있어야 합니다.

pGeometryDescs

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL 있고 DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY 경우 이 필드가 사용되며 CPU의 NumDescs 연속 D3D12_RAYTRACING_GEOMETRY_DESC 구조를 가리키며 개별 기하 도형을 설명합니다.

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL 않거나 DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY 않으면 이 매개 변수는 사용되지 않습니다.

ppGeometryDescs

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL있고 DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS 경우 이 필드는 사용되고 NumDescs 포인터 배열을 가리키며 CPU의 D3D12_RAYTRACING_GEOMETRY_DESC 구조체를 가리키며 개별 기하 도형을 설명합니다.

설명

실제로 빌드를 수행하는 GetRaytracingAccelerationStructurePrebuildInfo와 함께 사용하면 instanceDescs와 같은 D3D12_GPU_VIRTUAL_ADDRESS(GPU 메모리의 주소)를 통해 참조되는 모든 매개 변수는 작업에 의해 액세스되지 않습니다. 따라서 이 메모리는 아직 초기화되거나 특정 리소스 상태에 있을 필요가 없습니다. 포인터가 역참조되지 않더라도 GPU 주소가 null인지 여부를 작업에서 검사할 수 있습니다.

요구 사항

요구 사항
헤더 d3d12.h