有没有办法在GLSL 1.2片段程序中访问mipmap?

时间:2013-03-31 16:15:56

标签: opengl glsl mipmaps

我想在我的GLSL片段程序中访问不同级别的详细信息。我目前仍然坚持使用传统的OpenGL,包括GLSL 1.2。不幸的是,我无法控制它。

我看到texture2DLod()方法存在,但看起来它只能在顶点程序中使用。

我已阅读this question,但他们似乎正在使用GLSL 1.4或更高版本。不幸的是,我没有这个选择。

GLSL 1.2片段程序中有没有办法对特定的mipmap级别进行采样?

如果没有直接执行的功能,是否可以将mipmap作为单独的纹理发送而不进行8次复制?

1 个答案:

答案 0 :(得分:1)

片段着色器(在GLSL 1.20中)不可能访问特定的纹理mipmap。但是,您可以在使用之前随时更改the base/max mipmap levels of a texture。通过将它们设置为相同的级别,可以强制从该纹理访问任何纹理以使用特定的mipmap级别。

现在,您无法制作这些单独的纹理(除非您使用的是NVIDIA硬件和have access to ARB_texture_view)。因此,每次要选择新的mipmap时,都必须改变纹理的基本/最大级别。