使用计算着色器的错误结果
Bad result using compute shader
我做了2个渲染的例子(这里我只渲染了一个纹理的三角形)。
第一个使用正向渲染:我使用简单的片段着色器直接将三角形绘制到交换链:
outColor = vec4(texture(texAlbedo, fragTexCoord).rgba);
第二个使用延迟着色:第一遍使用纹理绘制场景,第二遍将结果像素复制到另一个纹理。第二遍仅使用计算着色器。
imageStore(resultImage, ivec2(gl_GlobalInvocationID.xy), vec4(albedo.bgr, 1.0));
我认为这两个结果应该相同,但第二个出现渲染问题。
第一个例子的结果:
第二个例子的结果:
我不明白这个问题。谢谢您的帮助 ! :)
感谢您的回复。
问题是在第二个示例中,我创建的图像视图没有 mipmap 级别。
我做了2个渲染的例子(这里我只渲染了一个纹理的三角形)。
第一个使用正向渲染:我使用简单的片段着色器直接将三角形绘制到交换链:
outColor = vec4(texture(texAlbedo, fragTexCoord).rgba);
第二个使用延迟着色:第一遍使用纹理绘制场景,第二遍将结果像素复制到另一个纹理。第二遍仅使用计算着色器。
imageStore(resultImage, ivec2(gl_GlobalInvocationID.xy), vec4(albedo.bgr, 1.0));
我认为这两个结果应该相同,但第二个出现渲染问题。
第一个例子的结果:
第二个例子的结果:
我不明白这个问题。谢谢您的帮助 ! :)
感谢您的回复。 问题是在第二个示例中,我创建的图像视图没有 mipmap 级别。