如何在 HLSL 中定义具有大维度的数组?
How can I define an array with a large dimension in HLSL?
有没有一种方法可以在 HLSL 中定义一个大数组或任何替代方法,因为我正试图将我的一些计算转移到 GPU。
我目前有
struct Buffer
{
float3 image[640 * 480];
};
但我收到错误
error X3059: array dimension must be between 1 and 65536
如果我不必将其拆分然后在 CPU 上将它们合并在一起就好了。
有办法解决这个问题吗?
更新
如评论中所述,将此数据存储为纹理更有意义,因为我尝试创建的数组存储像素数据。我试图在 HLSL 文件中定义我的 Texture2D
,但我似乎无法编辑数据或写入纹理文件。
有人知道怎么做吗?
我找不到解决这个问题的方法,但是当我处理图像数据时,使用 RWTexture2D<float4>
并提供读写访问似乎可以很好地实现我想要实现的目标。
有没有一种方法可以在 HLSL 中定义一个大数组或任何替代方法,因为我正试图将我的一些计算转移到 GPU。
我目前有
struct Buffer
{
float3 image[640 * 480];
};
但我收到错误
error X3059: array dimension must be between 1 and 65536
如果我不必将其拆分然后在 CPU 上将它们合并在一起就好了。
有办法解决这个问题吗?
更新
如评论中所述,将此数据存储为纹理更有意义,因为我尝试创建的数组存储像素数据。我试图在 HLSL 文件中定义我的 Texture2D
,但我似乎无法编辑数据或写入纹理文件。
有人知道怎么做吗?
我找不到解决这个问题的方法,但是当我处理图像数据时,使用 RWTexture2D<float4>
并提供读写访问似乎可以很好地实现我想要实现的目标。