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



我想在我的GLSL片段程序中访问不同级别的细节。我目前坚持使用传统的OpenGL,包括GLSL 1.2。不幸的是,我无法控制这一点。

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

我已经阅读了这个问题,但他们似乎与GLSL 1.4或更高版本一起工作。很遗憾,我没有那个选项。

在GLSL 1.2片段程序中是否有任何方法来采样特定的mipmap级别?

如果没有直接执行的功能,是否有可能将mipmaps作为单独的纹理发送而不做8个副本?

碎片着色器(在GLSL 1.20中)不可能访问特定的纹理贴图。然而,你可以在使用纹理之前更改它的基本/最大mipmap级别。通过将它们都设置为相同的级别,您可以强制任何来自该纹理的纹理访问使用特定的mipmap级别。

现在,你不能让这些单独的纹理(除非你使用NVIDIA硬件并有权访问ARB_texture_view)。因此,每次你想要选择一个新的mipmap时,你都必须改变纹理的base/max级别。

相关内容

最新更新