在 Win32 API 的 Direct3D 12 中,D3D12_BUFFER_UAV_FLAGS 枚举用于描述用于在着色器中访问缓冲器(Buffer)的 Unordered Access View (UAV) 的一些特性。以下是该枚举的定义:typedef enum D3D12_BUFFER_UAV_FLAGS { D3D12_BUFFER_UAV_FLAG_NONE = 0, D3D12_BUFFER_UAV_FLAG_RAW = 1, D3D12_BUFFER_UAV_FLAG_APPEND = 2, D3D12_BUFFER_UAV_FLAG_COUNTER = 4, D3D12_BUFFER_UAV_FLAG_RAW_BYTES = 7, D3D12_BUFFER_UAV_FLAG_FORMATTED = 0} D3D12_BUFFER_UAV_FLAGS;这个枚举定义了一些标志,可以用于创建用于 Unorder...
D3D12_BUFFER_SRV_FLAGS 枚举是 Direct3D 12 中的一个枚举类型,它用于描述缓冲器(Buffer)的特性。以下是 D3D12_BUFFER_SRV_FLAGS 枚举的定义:typedef enum D3D12_BUFFER_SRV_FLAGS { D3D12_BUFFER_SRV_FLAG_NONE = 0, D3D12_BUFFER_SRV_FLAG_RAW = 1} D3D12_BUFFER_SRV_FLAGS;这个枚举只有两个成员: D3D12_BUFFER_SRV_FLAG_NONE:表示没有特殊的缓冲器标志,即普通的缓冲器。 D3D12_BUFFER_SRV_FLAG_RAW:表示缓冲器是原始(Raw)缓冲器。原始缓冲器通常用于存储字节地址,而不是特定格式的数据。这个标志用于告诉 Direct3D 12 如何解释缓冲器中的数据。在使用 Direct3D 12 编程时,通过设置缓冲器(Buffer)的视图描述符(View Descriptor)时,可以使用这个枚举来指定相应的标志,以确保正确地处理缓冲器中的数据。
D3D12_BLEND_OP 枚举是Direct3D 12中的一个枚举类型,用于表示混合操作(Blend Operation)。混合操作是指在将像素颜色与目标颜色混合时所执行的运算。以下是 D3D12_BLEND_OP 枚举的成员:1. D3D12_BLEND_OP_ADD: 将源颜色和目标颜色相加。2. D3D12_BLEND_OP_SUBTRACT: 从源颜色中减去目标颜色。3. D3D12_BLEND_OP_REV_SUBTRACT: 从目标颜色中减去源颜色。4. D3D12_BLEND_OP_MIN: 选择源颜色和目标颜色中的最小值。5. D3D12_BLEND_OP_MAX: 选择源颜色和目标颜色中的最大值。这些枚举值用于描述混合状态中的混合操作,通过这些混合操作,可以实现不同的图形效果。在使用时,你可以将这些值传递给 D3D12_RENDER_TARGET_BLEND_DESC 结构体中的 BlendOp 字段,以配置混合状态。例如,以下是一段使用 D3D12_BLEND_OP_ADD 的代码示例:D3D12_RENDER_TARGET_BLEND_DESC renderT...
D3D12_BLEND 枚举是 Direct3D 12 API 中定义混合(blending)操作的枚举。混合是图形编程中常用的技术,用于将新的像素颜色与目标颜色进行组合。以下是 D3D12_BLEND 枚举的定义:typedef enum D3D12_BLEND { D3D12_BLEND_ZERO = 1, D3D12_BLEND_ONE = 2, D3D12_BLEND_SRC_COLOR = 3, D3D12_BLEND_INV_SRC_COLOR = 4, D3D12_BLEND_SRC_ALPHA = 5, D3D12_BLEND_INV_SRC_ALPHA = 6, D3D12_BLEND_DEST_ALPHA = 7, D3D12_BLEND_INV_DEST_ALPHA = 8, D3D12_BLEND_DEST_COLOR = 9, D3D12_BLEND_INV_DEST_COLOR = 10, D3D...
D3D12_BARRIER_TYPE 枚举是 Direct3D 12 API 中的一个枚举,用于指定资源状态转换的类型。这个枚举定义了不同类型的栅栏(barrier),栅栏用于同步 GPU 对资源的访问。以下是 D3D12_BARRIER_TYPE 枚举的定义:typedef enum D3D12_BARRIER_TYPE { D3D12_BARRIER_TYPE_MEMORY = 0, D3D12_BARRIER_TYPE_BUFFER = 1, D3D12_BARRIER_TYPE_TEXTURE = 2, D3D12_BARRIER_TYPE_UAV = 3} D3D12_BARRIER_TYPE; D3D12_BARRIER_TYPE_MEMORY:表示对整个 GPU 内存的访问进行栅栏。这个类型的栅栏通常用于确保之前的 GPU 操作完成,以及同步 GPU 与 CPU 之间的内存访问。 D3D12_BARRIER_TYPE_BUFFER:表示对缓冲区(buffer)的访问进行栅栏。这个类...
D3D12_AXIS_SHADING_RATE 枚举是在 Direct3D 12 中用于指定轴向着色率(Shading Rate)的枚举类型。以下是该枚举的定义:typedef enum D3D12_AXIS_SHADING_RATE { D3D12_AXIS_SHADING_RATE_1X = 0, D3D12_AXIS_SHADING_RATE_2X = 1, D3D12_AXIS_SHADING_RATE_4X = 2} D3D12_AXIS_SHADING_RATE;该枚举定义了以下值: D3D12_AXIS_SHADING_RATE_1X:1x轴向着色率。 D3D12_AXIS_SHADING_RATE_2X:2x轴向着色率。 D3D12_AXIS_SHADING_RATE_4X:4x轴向着色率。这个枚举通常用于描述 GPU 渲染管线中的轴向着色率,这是 Direct3D 12 的一个特性,可以根据屏幕上的像素密度动态调整着色率,从而提高渲染效率。轴向着色率可以应用于图形渲染过程中,以便更有效地利用 GPU 资源。
D3D_ROOT_SIGNATURE_VERSION 枚举用于指定根签名(Root Signature)的版本。这个枚举是在 D3d12.h 头文件中定义的。以下是枚举的定义:typedef enum D3D_ROOT_SIGNATURE_VERSION { D3D_ROOT_SIGNATURE_VERSION_1 = 0x1 << 16, D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1 << 16 | 0x0, D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x1 << 16 | 0x1,} D3D_ROOT_SIGNATURE_VERSION;该枚举定义了以下值: D3D_ROOT_SIGNATURE_VERSION_1:根签名版本 1 的标志,表示根签名的主版本。 D3D_ROOT_SIGNATURE_VERSION_1_0:具体版本号为 1.0 的根签名版本。 D3D_ROOT_SIGNATURE_VERSION_1_1:具体版本号为 1.1 的根签名版本。这个枚举通常用于在创建根签名时指定...
D3D12_VIEWPORT 是 Direct3D 12 中描述视口(viewport)的结构体。以下是该结构体的定义:typedef struct D3D12_VIEWPORT { FLOAT TopLeftX; FLOAT TopLeftY; FLOAT Width; FLOAT Height; FLOAT MinDepth; FLOAT MaxDepth;} D3D12_VIEWPORT;该结构体包含以下成员:1. TopLeftX:视口左上角的 x 坐标。2. TopLeftY:视口左上角的 y 坐标。3. Width:视口的宽度。4. Height:视口的高度。5. MinDepth:视口的最小深度值,通常在 0.0 到 1.0 之间。6. MaxDepth:视口的最大深度值,通常在 0.0 到 1.0 之间。这个结构体主要用于设置和描述渲染管线中的视口。视口定义了渲染目标上的可视区域,将世界空间中的图形投影到裁剪空间,并最终映射到屏幕空间。在绘制调用中,视口信息会传递给 GPU,以确定渲染结果在屏幕上的显示位置。
D3D12_VIEW_INSTANCING_DESC 是 Direct3D 12 中用于配置视图实例化(view instancing)的结构体。以下是该结构体的定义:typedef struct D3D12_VIEW_INSTANCING_DESC { UINT ViewInstanceCount; _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations; UINT BufferLocation; D3D12_VIEW_INSTANCING_FLAGS Flags;} D3D12_VIEW_INSTANCING_DESC;该结构体包含以下成员:1. ViewInstanceCount:表示视图实例的数量。2. pViewInstanceLocations:一个指向 D3D12_VIEW_INSTANCE_LOCATION 结构数组的指针,描述每个视图实例的位置信息。3. BufferLocation:视图实例化缓冲区的 GPU 虚拟地址,该...
D3D12_VERTEX_BUFFER_VIEW 是 Direct3D 12 中用于描述顶点缓冲区视图的结构体。以下是该结构体的定义:typedef struct D3D12_VERTEX_BUFFER_VIEW { D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; UINT SizeInBytes; DXGI_FORMAT Format;} D3D12_VERTEX_BUFFER_VIEW;该结构体包含以下成员:1. BufferLocation:顶点缓冲区的GPU虚拟地址。这是顶点数据存储在GPU内存中的地址。2. SizeInBytes:顶点缓冲区的大小,以字节为单位。3. Format:描述顶点数据的格式,通常是一个 DXGI 格式(DXGI_FORMAT 枚举值),例如 DXGI_FORMAT_R32G32B32_FLOAT 表示每个顶点有三个32位浮点数。这个结构体通常用于在渲染管线的输入装配阶段指定顶点缓冲区的相关信息。在绘制时,通过设置这个结构体,可以告诉GPU...
D3D12_UNORDERED_ACCESS_VIEW_DESC 是 Direct3D 12 中描述无序访问视图(Unordered Access View,简称 UAV)的结构体。以下是该结构体的定义:typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC { DXGI_FORMAT Format; D3D12_UAV_DIMENSION ViewDimension; UINT Texture1D; UINT Texture1DArray; D3D12_TEX1D_ARRAY_UAV Texture1DArray; D3D12_TEX2D_UAV Texture2D; D3D12_TEX2D_ARRAY_UAV Texture2DArray; D3D12_TEX3D_UAV Texture3D;} D3D12_UNORDERED_ACCESS_VIEW_DESC;该结构体包含以下成员:1. Format:指定 UAV 的数据格式(DXGI_FORMAT 枚举值)。2. ViewDimension:指定 UAV 的维度,可以是...
D3D12_TILED_RESOURCE_COORDINATE 是用于在 Direct3D 12 中表示瓦片资源坐标的结构体。以下是该结构体的定义:typedef struct D3D12_TILED_RESOURCE_COORDINATE { UINT X; UINT Y; UINT Z; UINT Subresource;} D3D12_TILED_RESOURCE_COORDINATE;该结构体包含以下成员:1. X、Y、Z:分别表示在资源中的 x、y 和 z 方向上的瓦片坐标。2. Subresource:表示资源的子资源索引,用于指定瓦片坐标所属的子资源。这个结构体通常在与瓦片资源相关的操作中使用,例如在对纹理资源进行瓦片化处理时,你可能需要指定每个瓦片的坐标。
D3D12_TILE_REGION_SIZE 是用于描述在 Direct3D 12 中瓦片资源中的一个瓦片区域的大小的结构体。以下是该结构体的定义:typedef struct D3D12_TILE_REGION_SIZE { UINT NumTiles; BOOL UseBox; UINT Width; UINT16 Height; UINT16 Depth;} D3D12_TILE_REGION_SIZE;该结构体包含以下成员:1. NumTiles:指定瓦片区域的总瓦片数。2. UseBox:一个布尔值,指示是否使用 Width、Height 和 Depth 成员来指定瓦片区域的大小。3. Width、Height、Depth:当 UseBox 为 TRUE 时,这些成员指定瓦片区域的大小。如果 UseBox 为 FALSE,则这些成员被忽略。该结构体通常用于设置瓦片资源的区域大小,以便在进行一些瓦片操作时指定要处理的区域。
D3D12_TEXTURE_COPY_LOCATION 是Direct3D 12中的一个结构体,用于描述纹理复制的源和目标位置信息。以下是该结构体的定义:typedef struct D3D12_TEXTURE_COPY_LOCATION { ID3D12Resource *pResource; D3D12_TEXTURE_COPY_TYPE Type; D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;} D3D12_TEXTURE_COPY_LOCATION;该结构包含以下成员:1. pResource:指向要进行复制的资源的指针,通常是一个纹理资源(ID3D12Resource 接口的指针)。2. Type:指定复制的资源类型,可以是 D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX 或 D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT。3. PlacedFootprint:如果 Type 是 D3D12_TEXTURE_COPY_TYPE_PLA...
在 Win32 API 中,D3D12_TEXTURE_BARRIER 是 Direct3D 12 中的一个结构体,用于表示纹理资源的屏障信息。以下是该结构体的定义:typedef struct D3D12_TEXTURE_BARRIER{ ID3D12Resource *pResource; UINT Subresource; D3D12_RESOURCE_BARRIER_TYPE Type; D3D12_RESOURCE_STATES StateBefore; D3D12_RESOURCE_STATES StateAfter;} D3D12_TEXTURE_BARRIER;结构体中的字段含义如下: pResource: 指向 ID3D12Resource 接口的指针,表示纹理资源。 Subresource: 一个从零开始的索引,指定纹理资源的子资源索引。 Type: 表示资源屏障的类型,是一个枚举值 D3D12_RESOURCE_BARRIER_TYPE。 StateBefore: 表示屏障执行前的资源状态,是一个枚举值 D3D12_RESOURCE_STATES。 St...
在 Win32 API 中,D3D12_TEXCUBE_SRV 是 Direct3D 12 中的一个结构体,用于描述立方体贴图的着色器资源视图(Shader Resource View,SRV)。以下是该结构体的定义:typedef struct D3D12_TEXCUBE_SRV{ UINT MostDetailedMip; UINT MipLevels; FLOAT ResourceMinLODClamp;} D3D12_TEXCUBE_SRV;结构体中包含三个字段: MostDetailedMip: 一个从零开始的索引,指定着色器资源视图所引用的纹理的最详细 mip 层级(mipmap 层级)。 MipLevels: 指定着色器资源视图引用的 mip 层级的数量。 ResourceMinLODClamp: 用于限制着色器对纹理的访问,确保只对 mip 层级大于等于指定值的纹理进行采样。这是一个浮点数,通常设置为 0.0f。这个结构体主要用于在创建着色器资源视图时指定要引用的立方体贴图的特定 mip 层级范围。在使用 Direct3D 12 进行图形编程时,你可以使用这个结构...
在 Win32 API 中,D3D12_TEXCUBE_ARRAY_SRV 是 Direct3D 12 中的一个结构体,用于描述立方体贴图数组的着色器资源视图(Shader Resource View,SRV)。以下是该结构体的定义:typedef struct D3D12_TEXCUBE_ARRAY_SRV{ UINT MostDetailedMip; UINT MipLevels; UINT First2DArrayFace; UINT NumCubes; FLOAT ResourceMinLODClamp;} D3D12_TEXCUBE_ARRAY_SRV;结构体中包含五个字段: MostDetailedMip: 一个从零开始的索引,指定着色器资源视图所引用的纹理的最详细 mip 层级(mipmap 层级)。 MipLevels: 指定着色器资源视图引用的 mip 层级的数量。 First2DArrayFace: 一个从零开始的索引,指定着色器资源视图引用的立方体贴图数组的起始 2D 数组表面。 NumCubes: 指定着色器资源视图引用的立方体贴图数组的数量。 Res...
在 Win32 API 中,D3D12_TEX3D_UAV 是 Direct3D 12 中的一个结构体,用于描述三维纹理的无序访问视图(Unordered Access View,UAV)。以下是该结构体的定义:typedef struct D3D12_TEX3D_UAV{ UINT MipSlice; UINT FirstWSlice; UINT WSize;} D3D12_TEX3D_UAV;结构体中包含三个字段: MipSlice: 一个从零开始的索引,指定无序访问视图所引用的纹理的 mip 层级(mipmap 层级)。 FirstWSlice: 一个从零开始的索引,指定无序访问视图引用的纹理的 W(深度) 维度的起始切片。 WSize: 指定无序访问视图引用的纹理的 W(深度) 维度的数量。这个结构体主要用于在创建无序访问视图时指定要引用的三维纹理的特定 mip 层级和 W(深度) 维度的切片范围。在使用 Direct3D 12 进行图形编程时,你可以使用这个结构体来设置无序访问视图的描述符。无序访问视图允许在着色器中以随机的方式读取和写入纹理数据,适用于一些通用计算的场...
在 Win32 API 中,D3D12_TEX3D_SRV 是 Direct3D 12 中的一个结构体,用于描述三维纹理的着色器资源视图(Shader Resource View,SRV)。以下是该结构体的定义:typedef struct D3D12_TEX3D_SRV{ UINT MostDetailedMip; UINT MipLevels; FLOAT ResourceMinLODClamp;} D3D12_TEX3D_SRV;结构体中包含三个字段: MostDetailedMip: 一个从零开始的索引,指定着色器资源视图所引用的纹理的最详细 mip 层级(mipmap 层级)。 MipLevels: 指定着色器资源视图引用的 mip 层级的数量。 ResourceMinLODClamp: 用于限制着色器对纹理的访问,确保只对 mip 层级大于等于指定值的纹理进行采样。这是一个浮点数,通常设置为 0.0f。这个结构体主要用于在创建着色器资源视图时指定要引用的三维纹理的特定 mip 层级范围。在使用 Direct3D 12 进行图形编程时,你可以使用这个结构体来设置着色器资...
在 Win32 API 中,D3D12_TEX3D_RTV 是 Direct3D 12 中的一个结构体,用于描述三维纹理的渲染目标视图(RenderTargetView,RTV)。以下是该结构体的定义:typedef struct D3D12_TEX3D_RTV{ UINT MipSlice; UINT FirstWSlice; UINT WSize;} D3D12_TEX3D_RTV;结构体中包含三个字段: MipSlice: 一个从零开始的索引,指定渲染目标视图所在的纹理的 mip 层级(mipmap 层级)。 FirstWSlice: 一个从零开始的索引,指定渲染目标视图所在的纹理的 W(深度) 维度的起始切片。 WSize: 指定渲染目标视图跨越的纹理的 W(深度) 维度的数量。这个结构体主要用于在创建渲染目标视图时指定要渲染的三维纹理的特定 mip 层级和 W(深度) 维度的切片范围。在使用 Direct3D 12 进行图形编程时,你可以使用这个结构体来设置渲染目标视图的描述符。RenderTargetView 用于将纹理用作渲染目标,在图形渲染中起到关键作用。
最新文章