Поделиться через


структура D3D12_DISPATCH_RAYS_DESC (d3d12.h)

Описывает свойства операции отправки лучей, инициированной вызовом ID3D12GraphicsCommandList4::D ispatchRays.

Синтаксис

typedef struct D3D12_DISPATCH_RAYS_DESC {
  D3D12_GPU_VIRTUAL_ADDRESS_RANGE            RayGenerationShaderRecord;
  D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
  D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
  D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
  UINT                                       Width;
  UINT                                       Height;
  UINT                                       Depth;
} D3D12_DISPATCH_RAYS_DESC;

Члены

RayGenerationShaderRecord

Запись шейдера для используемого шейдера создания лучей.

Указанная память должна находиться в состоянии D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.

Адрес должен быть выровнен по 64 байтам, определенным как D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT, и в диапазоне [0...4096] байт.

MissShaderTable

Таблица шейдеров для шейдеров пропусков.

Шаг является шагом записи и должен быть выровнен по 32 байтам, определенным как D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT, и в диапазоне [0...4096] байтов. Допускается значение 0.

Указанная память должна находиться в состоянии D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.

Адрес должен быть выровнен по 64 байтам, определенным как D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT.

HitGroupTable

Таблица шейдеров для групп попаданий.

Шаг является шагом записи и должен быть выровнен по 32 байтам, определенным как D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT, и в диапазоне [0...4096] байтов. Допускается значение 0.

Указанная память должна находиться в состоянии D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.

Адрес должен быть выровнен по 64 байтам, определенным как D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT.

CallableShaderTable

Таблица шейдеров для вызываемых шейдеров.

Шаг является шагом записи и должен быть выровнен по 32 байтам, определенным как D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT. Допускается значение 0.

Указанная память должна находиться в состоянии D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.

Адрес должен быть выровнен по 64 байтам, определенным как D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT.

Width

Ширина сетки потока создания шейдера.

Height

Высота сетки потока шейдера поколения.

Depth

Глубина сетки потока создания шейдера.

Требования

Требование Значение
Заголовок d3d12.h