我想用计算着色器进行一些计算,并将结果写入图像。 Here is a tutorial,我想遵循(我在项目中使用OpenSceneGraph)。
但着色器代码无法编译。在教程中,图像像制服一样传递,但经过一些研究后我发现,你应该在布局中传递它。我在我的代码中更改了该部分,但它仍然不起作用,并且当我想使用图像时收到错误。
这是我的简单计算着色器:
#version 430
#define TILE_SIZE 1
layout(local_size_x = TILE_SIZE, local_size_y = TILE_SIZE, local_size_z = 1) in;
layout (binding = 1, rgba32f) writeonly uniform image2D targetTex;
void main() {
imageStore(targetTex, gl_GlobalInvocationID.xy, vec4(1, 0, 1, 0));
}
我的错误信息:
error C1115: unable to find compatible overloaded function "imageStore(struct image2D1x32_bindless, uvec2, vec4)"
似乎图像的格式是错误的,但我不知道,我的错误在哪里。