Win32 API:D3D12_DRAW_INDEXED_ARGUMENTS 结构(D3d12.h)
D3D12_DRAW_INDEXED_ARGUMENTS 是 Direct3D 12 中用于描述索引绘制命令参数的结构体。以下是该结构体的定义:typedef struct D3D12_DRAW_INDEXED_ARGUMENTS { UINT IndexCountPerInstance; UINT InstanceCount; UINT StartIndexLocation; INT BaseVertexLocation; UINT StartInstanceLocation;} D3D12_DRAW_INDEXED_ARGUMENTS;这个结构体包含以下成员: IndexCountPerInstance: 每个实例的索引数量。 InstanceCount: 实例数量。 StartIndexLocation: 起始索引位置。 BaseVertexLocation: 基准顶点位置的偏移量。 StartInstanceLocation: 起始实例位置。这些成员描述了索引绘制命令的参数,用于指定每个实例的索引数量、实例数量以及起始索引、基准顶点和实例的位置。通常,这个结构体会作...
Win32 API:D3D12_DISPATCH_RAYS_DESC 结构(D3d12.h)
D3D12_DISPATCH_RAYS_DESC 是 Direct3D 12 中用于描述射线追踪调度的结构体。以下是该结构体的定义: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...
Win32 API:D3D12_DESCRIPTOR_RANGE1 结构(D3d12.h)
D3D12_DESCRIPTOR_RANGE1 是 Direct3D 12 中的结构体,用于描述描述符范围的扩展版本。以下是该结构体的定义:typedef struct D3D12_DESCRIPTOR_RANGE1 { D3D12_DESCRIPTOR_RANGE_TYPE RangeType; UINT NumDescriptors; UINT BaseShaderRegister; UINT RegisterSpace; D3D12_DESCRIPTOR_RANGE_FLAGS Flags; UINT OffsetInDescriptorsFromTableStart;} D3D12_DESCRIPTOR_RANGE1;相比于 D3D12_DESCRIPTOR_RANGE,D3D12_DESCRIPTOR_RANGE1 多了一个 Flags 成员,用于设置描述符范围的标志。这个结构体的成...
Win32 API:D3D12_DESCRIPTOR_RANGE 结构(D3d12.h)
D3D12_DESCRIPTOR_RANGE 是 Direct3D 12 中用于描述描述符范围的结构体。以下是该结构体的定义:typedef struct D3D12_DESCRIPTOR_RANGE { D3D12_DESCRIPTOR_RANGE_TYPE RangeType; UINT NumDescriptors; UINT BaseShaderRegister; UINT RegisterSpace; UINT OffsetInDescriptorsFromTableStart;} D3D12_DESCRIPTOR_RANGE;这个结构体包含以下成员: RangeType: 描述符范围的类型,使用 D3D12_DESCRIPTOR_RANGE_TYPE 枚举值,表示是着色器资源视图描述符、常量缓冲区视图描述符、无序访问视图描述符还是采样器描述符。 NumDescriptors: 描述符...
Win32 API:D3D12_DESCRIPTOR_HEAP_DESC 结构(D3d12.h)
D3D12_DESCRIPTOR_HEAP_DESC 是 Direct3D 12 中用于描述描述符堆(Descriptor Heap)的结构体。以下是该结构体的定义:typedef struct D3D12_DESCRIPTOR_HEAP_DESC { D3D12_DESCRIPTOR_HEAP_TYPE Type; UINT NumDescriptors; D3D12_DESCRIPTOR_HEAP_FLAGS Flags; UINT NodeMask;} D3D12_DESCRIPTOR_HEAP_DESC;这个结构体包含以下成员: Type: 描述符堆的类型,使用 D3D12_DESCRIPTOR_HEAP_TYPE 枚举值,表示是着色器资源视图描述符堆(Shader Resource View, SRV)、常量缓冲区视图描述符堆(Constant Buffer View, CBV)、无序访问视图描述符堆(Uno...
Win32 API:D3D12_DEPTH_STENCILOP_DESC 结构(D3d12.h)
D3D12_DEPTH_STENCILOP_DESC 是 Direct3D 12 中用于描述深度/模板操作的结构体。以下是该结构体的定义:typedef struct D3D12_DEPTH_STENCILOP_DESC { D3D12_STENCIL_OP StencilFailOp; D3D12_STENCIL_OP StencilDepthFailOp; D3D12_STENCIL_OP StencilPassOp; D3D12_COMPARISON_FUNC StencilFunc;} D3D12_DEPTH_STENCILOP_DESC;这个结构体包含以下成员: StencilFailOp: 在模板测试失败时执行的操作,使用 D3D12_STENCIL_OP 枚举值。 StencilDepthFailOp: 在深度测试失败时执行的操作,使用 D3D12_STENCIL_OP 枚举值。 StencilPassOp: 在模板测试和深度测试都通过时执行的操作,使用 D3D12_STENCIL_OP 枚举值。 StencilFunc: 用于模板测试的比较函数,使用 D3D12...
Win32 API:D3D12_DEPTH_STENCIL_VIEW_DESC 结构(D3d12.h)
D3D12_DEPTH_STENCIL_VIEW_DESC 是 Direct3D 12 中用于描述深度模板视图的结构体。以下是该结构体的定义:typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC { DXGI_FORMAT Format; D3D12_DSV_DIMENSION ViewDimension; D3D12_DSV_FLAGS Flags; union { D3D12_TEX1D_DSV Texture1D; D3D12_TEX1D_ARRAY_DSV Texture1DArray; D3D12_TEX2D_DSV Texture2D; D3D12_TEX2D_ARRAY_DSV Texture2DArray; D3D12_TEX2DMS_DSV Texture2DMS; D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; };} D3D12_DEPTH_STENCIL_...
Win32 API:D3D12_DEPTH_STENCIL_VALUE 结构(D3d12.h)
D3D12_DEPTH_STENCIL_VALUE 结构体是用于描述深度模板缓冲区中深度和模板值的结构。通常,这个结构体在创建深度模板缓冲区视图时使用,以指定初始的深度和模板值。以下是 D3D12_DEPTH_STENCIL_VALUE 结构体的定义:typedef struct D3D12_DEPTH_STENCIL_VALUE { FLOAT Depth; UINT8 Stencil;} D3D12_DEPTH_STENCIL_VALUE;其中: Depth 表示深度值,是一个浮点数。 Stencil 表示模板值,是一个8位无符号整数。这个结构体通常在创建深度模板缓冲区视图时,通过 ID3D12Device::CreateDepthStencilView 函数的参数来设置。在创建深度模板缓冲区视图时,你可以提供 D3D12_DEPTH_STENCIL_VALUE 结构体来指定深度和模板缓冲区的初始值。请注意,这个结构体主要用于初始配置深度模板缓冲区的内容,而实际的深度和模板值可能会在渲染过程中动态变化。
Win32 API:D3D12_DEPTH_STENCIL_DESC1 结构(D3d12.h)
D3D12_DEPTH_STENCIL_DESC1 结构体是 Direct3D 12 API 中用于描述深度模板状态的配置信息的扩展版本。相较于 D3D12_DEPTH_STENCIL_DESC,D3D12_DEPTH_STENCIL_DESC1 提供了额外的功能,支持样本掩码和遮挡测试。以下是 D3D12_DEPTH_STENCIL_DESC1 结构体的定义:typedef struct D3D12_DEPTH_STENCIL_DESC1 { BOOL DepthEnable; D3D12_DEPTH_WRITE_MASK DepthWriteMask; D3D12_COMPARISON_FUNC DepthFunc; BOOL StencilEnable; UINT8 StencilReadMask; UINT8 StencilWrit...
Win32 API:D3D12_DEPTH_STENCIL_DESC 结构(D3d12.h)
D3D12_DEPTH_STENCIL_DESC 结构体是用于描述深度模板状态的配置信息。深度模板状态定义了在深度测试和模板测试中如何处理像素的深度和模板值。以下是 D3D12_DEPTH_STENCIL_DESC 结构体的定义:typedef struct D3D12_DEPTH_STENCIL_DESC { BOOL DepthEnable; D3D12_DEPTH_WRITE_MASK DepthWriteMask; D3D12_COMPARISON_FUNC DepthFunc; BOOL StencilEnable; UINT8 StencilReadMask; UINT8 StencilWriteMask; D3D12_DEPTH_STENCILOP_DESC FrontFace; D3D12_DEPTH_STENCILOP_DESC BackFace;} D3D12_DEPTH_STENCIL_DESC;其中: DepthEnable 表示是否启用深度测试。 DepthWriteMask 表示深度写入掩码,决定深度缓冲区是否可写。 DepthFunc 表示...
Win32 API:D3D12_CPU_DESCRIPTOR_HANDLE 结构(D3d12.h)
D3D12_CPU_DESCRIPTOR_HANDLE 结构体是Direct3D 12 API中用于表示CPU(Central Processing Unit)描述符句柄的结构。描述符句柄是用于访问GPU资源(如纹理、缓冲区等)的标识,CPU描述符句柄则用于在CPU上管理和配置GPU资源。以下是 D3D12_CPU_DESCRIPTOR_HANDLE 结构体的定义:typedef struct D3D12_CPU_DESCRIPTOR_HANDLE { SIZE_T ptr;} D3D12_CPU_DESCRIPTOR_HANDLE; ptr 是指向CPU描述符的指针,通常是一个指向描述符堆中某个描述符的指针。这个结构体主要在Direct3D 12中的描述符堆操作中使用,比如创建描述符堆、访问描述符等。描述符堆是一块用于存储描述符的内存区域,它可以包含诸如渲染目标视图(RTV)、深度模板视图(DSV)、着色器资源视图(SRV)等不同类型的描述符。在创建描述符堆后,通过CPU描述符句柄可以访问描述符堆中的具体描述符,以便在CPU上配置和管理GPU资源。
Win32 API:D3D12_CONSTANT_BUFFER_VIEW_DESC 结构(D3d12.h)
在 Win32 API 中,D3D12_CONSTANT_BUFFER_VIEW_DESC 结构体用于描述常量缓冲区视图(Constant Buffer View,CBV)的配置信息。CBV 用于将常量缓冲区绑定到着色器阶段,以在着色器中访问常量数据。以下是 D3D12_CONSTANT_BUFFER_VIEW_DESC 结构体的定义:typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC { D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; UINT SizeInBytes;} D3D12_CONSTANT_BUFFER_VIEW_DESC;其中: BufferLocation 是常量缓冲区的虚拟 GPU 地址。 SizeInBytes 是常量缓冲区的大小(以字节为单位)。这个结构体用于创建常量缓冲区视图(CBV),通常通过 ID3D12Device::CreateConstantBufferView 函数完成。在创建 CBV 时,你需要提供常量缓冲区的虚拟 GPU 地址和大小。CBV 允许着色器访问常量数据...
Win32 API:D3D12_COMPUTE_PIPELINE_STATE_DESC 结构(D3d12.h)
D3D12_COMPUTE_PIPELINE_STATE_DESC 结构体是用于描述Direct3D 12中计算着色器管道状态的结构。这个结构体通常在创建计算着色器管道状态时使用。以下是 D3D12_COMPUTE_PIPELINE_STATE_DESC 结构的定义:typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC { ID3D12RootSignature *pRootSignature; D3D12_SHADER_BYTECODE CS; UINT NodeMask; D3D12_CACHED_PIPELINE_STATE CachedPSO; D3D12_PIPELINE_STATE_FLAGS Flags;} D3D12_COMPUTE_PIPELINE_STATE_DESC;其中: pRootSignature 是一个指向计算着色器使用的根签名(root signature)的指针。 CS 是包含计算着色器字节码的结构体,通过 D3D12_SHADER_B...
Win32 API:D3D12_COMMAND_SIGNATURE_DESC 结构(D3d12.h)
D3D12_COMMAND_SIGNATURE_DESC 结构体是用于描述Direct3D 12中命令签名(Command Signature)的配置信息的结构。命令签名用于定义GPU命令的格式和布局。以下是 D3D12_COMMAND_SIGNATURE_DESC 结构的定义:typedef struct D3D12_COMMAND_SIGNATURE_DESC { UINT ByteStride; UINT NumArgumentDescs; const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; UINT NodeMask;} D3D12_COMMAND_SIGNATURE_DESC;其中: ByteStride 表示每个命令的字节大小。 NumArgumentDescs 表示命令签名中参数描述结构的数量。 pArgumentDescs 是一个指向 D3D12_INDIRECT_ARGUMENT...
Win32 API:D3D12_COMMAND_QUEUE_DESC 结构(D3d12.h)
D3D12_COMMAND_QUEUE_DESC 结构体是用于描述Direct3D 12中命令队列(Command Queue)的配置的结构。命令队列用于接收和执行GPU命令。以下是 D3D12_COMMAND_QUEUE_DESC 结构的定义:typedef struct D3D12_COMMAND_QUEUE_DESC { D3D12_COMMAND_LIST_TYPE Type; INT Priority; D3D12_COMMAND_QUEUE_FLAGS Flags; UINT NodeMask;} D3D12_COMMAND_QUEUE_DESC;其中: Type 表示命令队列的类型,可以是以下之一: - D3D12_COMMAND_LIST_TYPE_DIRECT:直接命令队列,用于处理图形和计算命令。 - D3D12_COMMAND_LIST_TYPE_BUNDLE:捆绑命令队列,用于存储和重放命令束。 - D3D12_COMMAND_LIST_TYPE_COMPUTE:计...
Win32 API:D3D12_CLEAR_VALUE 结构(D3d12.h)
D3D12_CLEAR_VALUE 结构是用于描述资源清除值的结构,通常在创建可清除资源(例如渲染目标、深度模板缓冲等)时使用。以下是 D3D12_CLEAR_VALUE 结构的定义:typedef struct D3D12_CLEAR_VALUE { DXGI_FORMAT Format; union { FLOAT Color[4]; struct { FLOAT Depth; UINT8 Stencil; } DSV; };} D3D12_CLEAR_VALUE;其中: Format 表示资源的格式,例如 DXGI_FORMAT_R8G8B8A8_UNORM 表示一个32位RGBA颜色格式。 Color 数组表示清除颜色的四个分量(红、绿、蓝、透明度),适用于渲染目标。 DSV 结构用于深度模板缓冲的清除值,包括 Depth 表示深度值,Stencil 表示模板值。具体使用时,根据资源的类型和格式,选择合适的字段进行设置。例如,对于渲染目标,你会设置 Color 字段,而对于深度模板缓冲,你会设置 DSV 结构中的 Depth 和 St...
Win32 API:D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 结构(D3d12.h)
在 Win32 API 中,D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 结构体是用于描述光线追踪加速结构(Raytracing Acceleration Structure)的创建或更新过程的输入参数结构。这个结构体包含了创建或更新光线追踪加速结构所需的一些基本信息。以下是 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 结构体的定义:typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS { D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags; UINT NumDescs; D3D12_GPU_VIRTUAL_ADDRESS ...
Win32 API:D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC 结构(D3d12.h)
在 Win32 API 中,D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC 结构体是用于描述光线追踪加速结构(Raytracing Acceleration Structure)的创建或更新过程的结构。这个结构体通常用于构建或更新光线追踪的加速结构,例如顶点缓冲、索引缓冲等。以下是 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC 结构体的定义:typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC { D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData; D3D12_BUILD_FLAGS Flags; UINT NumDescs; D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData; union { s...
Win32 API:D3D12_BUFFER_UAV 结构(D3d12.h)
在 Win32 API 中,D3D12_BUFFER_UAV 结构体用于描述缓冲区的无序访问视图(Unordered Access View,UAV)。它是 D3D12_UNORDERED_ACCESS_VIEW_DESC 结构中的一部分,用于指定用于无序访问的资源。以下是 D3D12_BUFFER_UAV 结构体的定义:typedef struct D3D12_BUFFER_UAV { UINT64 FirstElement; UINT64 NumElements; UINT StructureByteStride; UINT64 CounterOffsetInBytes; D3D12_BUFFER_UAV_FLAGS Flags;} D3D12_BUFFER_UAV;其中: FirstElement 是缓冲区中的第一个元素的索引。 NumElements 是要访问的元素数量。 StructureByteStride 是每个元素的字节大小。 CounterOffsetInBytes 是计数器的偏移量(用于原子操作)。 Flags 是用于配置 UAV 的标志位。这个结构体...
Win32 API:D3D12_BUFFER_SRV 结构(D3d12.h)
在 Win32 API 中,D3D12_BUFFER_SRV 结构体用于描述缓冲区的着色器资源视图(Shader Resource View,SRV)。它是 D3D12_SHADER_RESOURCE_VIEW_DESC 结构中的一部分,用于指定用于着色器的资源。以下是 D3D12_BUFFER_SRV 结构体的定义:typedef struct D3D12_BUFFER_SRV { UINT64 FirstElement; UINT64 NumElements; UINT StructureByteStride; D3D12_BUFFER_SRV_FLAGS Flags;} D3D12_BUFFER_SRV;其中: FirstElement 是缓冲区中的第一个元素的索引。 NumElements 是要访问的元素数量。 StructureByteStride 是每个元素的字节大小。 Flags 是用于配置 SRV 的标志位。这个结构体描述了缓冲区的 SRV,允许应用程序在着色器中以纹理或结构化缓冲区的形式访问缓冲区的数据。通常,D3D12_BUFFER_SRV 结构体会包含...