【发布时间】:2019-03-30 10:46:07
【问题描述】:
我想从存储无符号整数的图像中读取和写入。我如何阅读和写作?读取和写入图像的标准方法是使用 imageLoad/imageStore,但是当使用格式限定符 r32ui 时,编译器会 errors 使用 no matching overloaded function found。
这编译失败:
#version 450
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
layout(set = 0, binding = 0, r32ui) uniform writeonly uimage3D img;
void main() {
imageStore(img, ivec3(1,2,3), uint(4));
}
这编译良好strong>:
#version 450
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
layout(set = 0, binding = 0, rgba8ui) uniform writeonly uimage3D img;
void main() {
imageStore(img, ivec3(1,2,3), uvec4(4,5,6,7));
}
我尝试使用 uvec3 而不是 ivec3 作为坐标,并使用 uvec4 作为数据写入,以防我误解了格式存储的内容。使用二维图像也没有区别。
【问题讨论】:
标签: image glsl shader vulkan uint