缓冲区类型

使用以下语法声明缓冲区变量。

缓冲区<类型>名称;

parameters

缓冲区

必需的关键字 (keyword) 。

类型

标量矢量和某些矩阵 HLSL 类型之一。 可以使用矩阵声明缓冲区变量,只要它适合 4 个 32 位数量。 因此,可以编写 Buffer<float2x2>。 但 Buffer<float4x4> 太大,编译器将生成错误。

名字

唯一标识变量名称的 ASCII 字符串。

示例

下面是缓冲区声明的示例。

Buffer<float4> g_Buffer;

使用 加载 HLSL 内部函数的重载版本从缓冲区读取数据,该函数采用一个输入参数 (整数索引) 。 缓冲区是像元素数组一样访问的;因此,此示例读取第二个元素。

float4 bufferData = g_Buffer.Load( 1 );

使用 流输出阶段 将数据输出到缓冲区。

备注

需要一个兼容的类型化缓冲区着色器资源视图 (SRV) 才能从缓冲区正确加载。 负载可以选择执行类型转换,例如 ,可以将RGBA8_UNORM 缓冲区加载到变量中 float4 。 对于缓冲区连接结构,请改用 StructuredBuffer

另请参阅

数据类型 (DirectX HLSL)