在 Direct3D 12 中,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC 是一个结构体,用于检索射线追踪加速结构(Ray Tracing Acceleration Structure)在构建完成后的当前大小信息。射线追踪加速结构是一种用于提高射线追踪性能的数据结构。以下是 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC 结构的定义:typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC { UINT64 CurrentSizeInBytes; UINT64 ScratchSizeInBytes;} D3D12_RAYTRAC...
在 Direct3D 12 中,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC 是一个结构体,用于检索射线追踪加速结构(Ray Tracing Acceleration Structure)在构建完成后压缩后的尺寸信息。射线追踪加速结构是一种用于提高射线追踪性能的数据结构。以下是 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC 结构的定义:typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC { UINT64 DestSizeInBytes; UINT64 ScratchSizeInBytes;} D3D12_RAY...
在 Direct3D 12 中,D3D12_RAYTRACING_AABB 是一个结构体,用于表示射线追踪(Ray Tracing)中的轴对齐包围盒(AABB)。射线追踪是一种用于实时渲染的先进技术,其中光线(射线)通过场景与物体交互,从而创建图像。以下是 D3D12_RAYTRACING_AABB 结构的定义:typedef struct D3D12_RAYTRACING_AABB { FLOAT MinX; FLOAT MinY; FLOAT MinZ; FLOAT MaxX; FLOAT MaxY; FLOAT MaxZ;} D3D12_RAYTRACING_AABB;结构体成员表示轴对齐包围盒的最小和最大坐标: MinX, MinY, MinZ: 表示轴对齐包围盒的最小坐标。 MaxX, MaxY, MaxZ: 表示轴对齐包围盒的最大坐标。这个结构体通常用于构建射线追踪的加速结构,例如包围体层次(Bounding Volume Hierarchy,BVH)。在进行射线与场景中的物体相交测试时,使用这样的包围盒可以提高射线追踪的效率,减少需要测试的对象数量。在使用射线...
在 Direct3D 12 中,D3D12_RASTERIZER_DESC 是一个结构体,用于描述光栅化器(Rasterizer)的属性。光栅化器是图形渲染管线中的一部分,用于将图元(如三角形)转换为屏幕上的像素。以下是 D3D12_RASTERIZER_DESC 结构的定义:typedef struct D3D12_RASTERIZER_DESC { D3D12_FILL_MODE FillMode; D3D12_CULL_MODE CullMode; BOOL FrontCounterClockwise; INT DepthBias; FLOAT DepthBiasClamp; FLOAT SlopeScaledDepthBias; BOOL DepthClipEnable; BOOL MultisampleEnable; BOOL AntialiasedLineEnable; UINT F...
在 Direct3D 12 中,D3D12_RANGE_UINT64 是一个结构体,用于描述映射资源时的字节范围,其定义如下:typedef struct D3D12_RANGE_UINT64 { UINT64 Begin; UINT64 End;} D3D12_RANGE_UINT64;这个结构体主要用于在调用 ID3D12Resource 接口的 Map 方法时,指定要映射的资源的字节范围。相较于 D3D12_RANGE 结构,D3D12_RANGE_UINT64 使用 UINT64 类型表示偏移量,适用于大于 4GB 的资源。结构体成员的含义如下: Begin: 表示映射范围的起始偏移量(以字节为单位)。 End: 表示映射范围的结束偏移量(以字节为单位)。与 Begin 不同的是,End 表示映射范围的末尾位置。当你需要映射资源的特定范围时,可以使用这个结构体指定映射的起始和结束位置。这对于处理大型资源时,只需映射资源的一部分而不是整个资源,以提高效率和性能非常有用。
D3D12_RANGE 是 Direct3D 12 中的一个结构体,用于描述在映射资源时指定的范围。在映射资源时,你可以指定要映射的数据的范围,以便进行读取或写入操作。以下是 D3D12_RANGE 结构的定义:typedef struct D3D12_RANGE { SIZE_T Begin; SIZE_T End;} D3D12_RANGE;结构体成员的含义如下: Begin: 指定映射范围的起始偏移量(以字节为单位)。 End: 指定映射范围的结束偏移量(以字节为单位)。注意,这个偏移量并不是指定映射数据的长度,而是映射范围的结束位置。当你使用 ID3D12Resource 接口的 Map 方法映射资源时,可以通过传递一个 D3D12_RANGE 结构体来指定映射的范围。这样,你就可以有选择性地映射资源的一部分而不是整个资源。
D3D12_QUERY_HEAP_DESC 是 Direct3D 12 中的一个结构体,用于描述查询堆(Query Heap)的属性。查询堆用于存储 GPU 查询,例如时间戳查询或流水线统计信息。以下是 D3D12_QUERY_HEAP_DESC 结构的定义:typedef struct D3D12_QUERY_HEAP_DESC { D3D12_QUERY_HEAP_TYPE Type; UINT Count; D3D12_QUERY_HEAP_FLAGS Flags; UINT NodeMask;} D3D12_QUERY_HEAP_DESC;结构体成员的含义如下: Type: 指定查询堆的类型,可以是以下之一: - D3D12_QUERY_HEAP_TYPE_OCCLUSION: 用于遮挡查询。 - D3D12_QUERY_HEAP_TYPE_TIMESTAMP: 用于时间戳查询。 - D3D12_QUERY_HEAP_TYPE_PIPELINE_STATIST...
在 Direct3D 12 中,D3D12_QUERY_DATA_SO_STATISTICS 结构体用于存储查询流输出(Stream Output)统计信息的结果。这个结构体包含了关于流输出的统计数据。以下是该结构体的定义:typedef struct D3D12_QUERY_DATA_SO_STATISTICS { UINT64 NumPrimitivesWritten; UINT64 PrimitivesStorageNeeded;} D3D12_QUERY_DATA_SO_STATISTICS;这个结构体包含以下字段: NumPrimitivesWritten: 流输出期间写入的图元数。 PrimitivesStorageNeeded: 流输出所需的图元存储空间。这个结构体通常用于从 GPU 查询与流输出相关的统计信息。你可以使用 ID3D12GraphicsCommandList::EndQuery 和 ID3D12GraphicsCommandList::ResolveQueryData 等函数来进行查询。请注意,结构体的使用可能会依赖于具体的 Direct3D 12 版...
在 Direct3D 12 中,D3D12_QUERY_DATA_PIPELINE_STATISTICS 结构体用于存储管线统计查询的结果。这个结构体包含了关于图形渲染管线的统计信息。以下是该结构体的定义:typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS { UINT64 IAVertices; UINT64 IAPrimitives; UINT64 VSInvocations; UINT64 GSInvocations; UINT64 GSPrimitives; UINT64 CInvocations; UINT64 CPrimitives; UINT64 PSInvocations; UINT64 HSInvocations; UINT64 DSInvocations; UINT64 CSInvocations;} D3D12_QUERY_DATA_PIPELINE_STATISTICS;这个结构体包含以下字段: IAVertices: 输入装配阶段(Input Assembler)的顶点数。 IAPrim...
在 Direct3D 12 中,D3D12_PLACED_SUBRESOURCE_FOOTPRINT 结构体用于描述资源中的子资源的布局。以下是该结构体的定义:typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT { UINT64 Offset; D3D12_SUBRESOURCE_FOOTPRINT Footprint;};这个结构体包含以下两个字段: Offset: 子资源在资源内的偏移量,以字节为单位。 Footprint: 描述子资源布局的 D3D12_SUBRESOURCE_FOOTPRINT 结构体,其中包括行、深度、格式等信息。通常,这个结构体在处理资源时用于确定子资源在资源内的布局,以便进行数据的读取或写入。例如,当创建一个上传堆(upload heap)用于将数据上传到 GPU 时,你可以使用这个结构体来获取每个子资源的偏移和布局信息。这个结构体的使用可能会依赖于具体的 Direct3D 12 版本或相关的 API 更新。如果你使用的是较新的版本,建议查阅相应的文档以获取准确的信息。
在 Direct3D 12 中,D3D12_PIPELINE_STATE_STREAM_DESC 结构体用于描述一个包含多个状态描述符的结构。这个结构体通常与管道状态(Pipeline State)相关的流(Stream)一起使用,以便创建或序列化管道状态。以下是该结构体的定义:typedef struct D3D12_PIPELINE_STATE_STREAM_DESC { SIZE_T SizeInBytes; _Field_size_bytes_full_(SizeInBytes) const void *pPipelineStateSubobjectStream;} D3D12_PIPELINE_STATE_STREAM_DESC;这个结构体包含以下字段: SizeInBytes: 以字节为单位的数据流的大小。 pPipelineStateSubobjectStream: 指向包含管道状态子对象数据流的指针。通常,在创建或序列化管道状态时,你需要为不同类型的管道状态子对象创建对应的结构体,并将这些结构体按照顺序放置在一个缓冲...
在 Direct3D 12 中,D3D12_PACKED_MIP_INFO 结构体用于描述压缩纹理中的 mipmap 信息。以下是该结构体的定义:typedef struct D3D12_PACKED_MIP_INFO { UINT8 NumStandardMips; UINT8 NumPackedMips; UINT NumTilesForPackedMips; UINT StartTileIndexInOverallResource;} D3D12_PACKED_MIP_INFO;这个结构体包含以下字段: NumStandardMips: 指定标准的(未压缩)mip等级的数量。 NumPackedMips: 指定压缩的mip等级的数量。 NumTilesForPackedMips: 指定用于存储压缩的mip等级的总瓦片数。 StartTileIndexInOverallResource: 指定压缩的mip等级在整个资源中的起始瓦片索引。这个结构体通常在创建纹理资源时,通过 D3D12_RESOURCE_DESC 结构的 Layout 字段的 D3D12_TEXTURE_LA...
在 Direct3D 12 中,D3D12_NODE_MASK 结构体用于指定资源或命令队列可以使用的节点掩码。以下是该结构体的定义:typedef struct D3D12_NODE_MASK { UINT NodeMask;} D3D12_NODE_MASK;这个结构体只有一个字段: NodeMask: 表示节点掩码,用于指定资源或命令队列可以使用的节点。在多节点系统中,每个节点都有一个对应的位,位的索引表示节点的编号。因此,NodeMask 中的每一位都表示相应的节点是否可用。例如,如果 NodeMask 的第 0 位被设置为 1,表示节点 0 可用;如果第 1 位被设置为 1,表示节点 1 可用,以此类推。这个结构体通常在创建资源或命令队列时使用,以确定资源可以在哪些节点上使用,或者命令队列可以在哪些节点上执行。例如,在创建命令队列时,可以使用 D3D12_COMMAND_QUEUE_DESC 结构的 NodeMask 字段来指定命令队列的节点掩码。在创建资源时,可以使用 D3D12_HEAP_DESC 结构的 CreationNodeMask 和 VisibleNodeMa...
在 Direct3D 12 中,D3D12_MIP_REGION 结构体用于描述纹理的一个子区域,其中包含了某个特定层级(mip level)的信息。以下是该结构体的定义:typedef struct D3D12_MIP_REGION { UINT NumColumns; UINT NumRows; UINT NumPlanes;} D3D12_MIP_REGION;这个结构体包含以下字段:1. NumColumns: 表示纹理子区域的列数。2. NumRows: 表示纹理子区域的行数。3. NumPlanes: 表示纹理子区域的层数。通常,D3D12_MIP_REGION 结构体用于指定一个特定层级的纹理的子区域,以便在纹理复制等操作中局部处理。在使用时,你可能会将这个结构体传递给相关的函数,比如 ID3D12GraphicsCommandList::CopyTextureRegion。请注意,结构体的使用可能会依赖于具体的 Direct3D 12 版本或相关的 API 更新。如果你使用的是较新的版本,建议查阅相应的文档以获取准确的信息。
在 Direct3D 12 中,D3D12_INPUT_LAYOUT_DESC 结构体用于描述输入布局的信息,该信息包括了一系列的顶点元素描述符(D3D12_INPUT_ELEMENT_DESC)。以下是该结构体的定义:typedef struct D3D12_INPUT_LAYOUT_DESC { const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; UINT NumElements;} D3D12_INPUT_LAYOUT_DESC;结构体包含以下字段:1. pInputElementDescs: 指向输入元素描述符数组的指针,每个元素描述符描述了一个顶点元素的格式和布局。2. NumElements: 输入元素描述符数组的元素个数,即顶点元素的数量。这个结构体通常用于创建输入布局,该布局描述了传递给顶点着色器的顶点数据的格式和排列。通过创建输入布局,你可以确保顶点着色器正确地解释缓冲区中的顶点数据。要使用这个结构体,你需要填充一个 D3D12_INPUT_ELEMENT_DE...
D3D12_INPUT_ELEMENT_DESC 结构是 Direct3D 12 中用于描述输入布局的结构体。这个结构通常在创建输入布局时使用,用于指定顶点数据在缓冲区中的排列方式。以下是该结构的定义:typedef struct D3D12_INPUT_ELEMENT_DESC { LPCSTR SemanticName; UINT SemanticIndex; DXGI_FORMAT Format; UINT InputSlot; UINT AlignedByteOffset; D3D12_INPUT_CLASSIFICATION InputSlotClass; UINT InstanceDataStepRate;} D3D12_INPUT_ELEMENT_DESC;这个结构包含以下几个字段:1. SemanticName: ...
D3D12_INDEX_BUFFER_VIEW 结构是 Direct3D 12 中用于描述索引缓冲区视图的结构体。索引缓冲区用于存储几何体的索引数据,通常在绘制图形时使用。以下是该结构的定义:typedef struct D3D12_INDEX_BUFFER_VIEW { D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; UINT SizeInBytes; DXGI_FORMAT Format;} D3D12_INDEX_BUFFER_VIEW;这个结构包含以下几个字段:1. BufferLocation: 表示索引缓冲区的 GPU 虚拟地址。该地址指向索引缓冲区在 GPU 内存中的位置。2. SizeInBytes: 表示索引缓冲区的大小,以字节为单位。3. Format: 表示索引缓冲区中索引的格式,是一个 DXGI_FORMAT 枚举值。这个格式指定了索引数据的类型,比如是16位整数、32位整数等。这个结构通常用于创建索引缓冲区视图,然后将其绑定到图形流水线上。在使用时,...
D3D12_HIT_GROUP_DESC 结构是 Direct3D 12 中的一部分,用于描述着色器程序命中组(hit group)的属性。以下是该结构的定义:typedef struct D3D12_HIT_GROUP_DESC { LPCWSTR AnyHitShaderImport; LPCWSTR ClosestHitShaderImport; LPCWSTR IntersectionShaderImport; D3D12_HIT_GROUP_TYPE Type;} D3D12_HIT_GROUP_DESC;这个结构有以下几个字段:1. AnyHitShaderImport: 表示任意击中着色器的导入名称。当光线与几何体相交时,如果指定了这个字段,将执行相应的任意击中着色器。2. ClosestHitShaderImport: 表示最近击中着色器的导入名称。当光线与几何体相交时,如果指定了这个字段,将执行相应的最近击中着色器。3. IntersectionShaderImport: 表示相交着色器的导入名称。当光线与几何体相交时,如果指定了这个字段,将执行相应的相交着色...
D3D12_HEAP_PROPERTIES 结构是 Direct3D 12 中的一部分,用于描述资源堆(heap)的属性。以下是该结构的定义:typedef struct D3D12_HEAP_PROPERTIES { D3D12_HEAP_TYPE Type; D3D12_CPU_PAGE_PROPERTY CPUPageProperty; D3D12_MEMORY_POOL MemoryPoolPreference; UINT CreationNodeMask; UINT VisibleNodeMask;} D3D12_HEAP_PROPERTIES;这个结构有以下几个字段:1. Type: 表示堆的类型,是一个枚举值,包括以下几种类型: - D3D12_HEAP_TYPE_DEFAULT: 默认堆,通常是 GPU 可访问的。 - D3D12_HEAP_TYPE_UPLOAD: 上传堆,用于 CPU 向 GPU 上传数据。 - D3D12_HEAP_TYPE_READBACK: 读取回堆,用于 CPU...
D3D12_HEAP_DESC 结构是 Direct3D 12 中用于描述堆(Heap)的结构体。以下是该结构的定义:typedef struct D3D12_HEAP_DESC { UINT64 SizeInBytes; D3D12_HEAP_PROPERTIES Properties; UINT64 Alignment; D3D12_HEAP_TYPE Type; D3D12_FLAGS Flags;} D3D12_HEAP_DESC;这个结构用于描述创建堆时的一些参数,其中的成员含义如下: SizeInBytes: 堆的总大小,以字节为单位。 Properties: 堆的属性,是一个 D3D12_HEAP_PROPERTIES 结构,用于指定堆的类型(默认堆、上传堆、读取堆等)和 CPU 访问的方式。 Alignment: 堆的对齐方式,以字节为单位。 Type: 堆的类型,是一个 D3D12_HEAP_TYPE 枚举值,表示堆是默认堆、上...
最新文章