Opengl 计算着色器-绑定所有纹理';s mip映射

Opengl 计算着色器-绑定所有纹理';s mip映射,opengl,glsl,directx,shader,compute-shader,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) uni

是否可以(在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贴图的数量时,我都必须生成完全不同的着色器程序…

这完全取决于
z
是什么。而我的意思正是
z
是什么;它的价值来自何处以及如何使用这些价值至关重要。另外,如果这是一个好主意,您使用的算法是什么?在GPU上构建四叉树的过程中,您正在这样将数据写入多个mipmap级别。每个mip贴图级别表示四叉树中的每个详细级别。这里的详细信息:Z是在计算着色器中计算的,这完全取决于
Z
是什么。而我的意思正是
z
是什么;它的价值来自何处以及如何使用这些价值至关重要。另外,如果这是一个好主意,您使用的算法是什么?在GPU上构建四叉树的过程中,您正在这样将数据写入多个mipmap级别。每个mip贴图级别表示四叉树中的每个详细级别。此处的详细信息:Z在计算着色器中计算