缓冲区类型
使用以下语法声明缓冲区变量。
缓冲区<类型>名称; |
---|
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 。