计算着色器-绑定所有纹理的MIP贴图

时间:2019-11-14 21:20:12

标签: opengl glsl directx shader compute-shader

是否可以(在OpenGL计算着色器中)绑定与image2D结构相同的图像的3个mip映射? 现在,我的计算着色器中有类似的内容:

layout (binding = 0, rgba16) uniform writeonly image2D textureMipMapLevel0;
layout (binding = 1, rgba16) uniform writeonly image2D textureMipMapLevel1;
layout (binding = 2, rgba16) uniform writeonly image2D textureMipMapLevel2;

然后:

if(z == 0)
{
   imageStore(textureMipMapLevel0, iTextureCoords, vec4(1.0, 0.0, 0.0, 1.0));
}
else if(z == 1)
{
   imageStore(textureMipMapLevel1, iTextureCoords, vec4(0.0, 1.0, 0.0, 1.0));
]
else
{
   imageStore(textureMipMapLevel2, iTextureCoords, vec4(0.0, 0.0, 1.0, 1.0));
}

有没有类似的函数:getTextureByTextureUnit或类似的东西来使用我的z值而不是乘法if和else块?每当我改变许多MIP贴图时,我都必须生成完全不同的着色器程序...

0 个答案:

没有答案