我想在我的GLSL片段程序中访问不同级别的详细信息。我现在坚持使用遗留的OpenGL,包括GLSL1.2。不幸的是,我无法控制这一点。
我看到texture2DLod()
方法是存在的,但它似乎只能在顶点程序中使用。
我读过this question,但他们似乎使用GLSL1.4或更高版本。不幸的是,我没有这样的选择。
在GLSL1.2片段程序中,有没有办法对特定的mipmap级别进行采样?
如果没有直接执行此操作的函数,是否可以将mipmap作为单独的纹理发送,而无需执行8个副本?
发布于 2013-03-31 23:07:37
片段着色器(在GLSL 1.20中)无法访问特定的纹理mipmap。但是,您始终可以在使用the base/max mipmap levels of a texture之前对其进行更改。通过将它们设置为相同级别,可以强制从该纹理进行的任何纹理访问都使用特定的mipmap级别。
现在,你不能制作这些单独的纹理(除非你使用的是NVIDIA硬件和have access to ARB_texture_view)。所以每次你想要选择一个新的mipmap时,你都得忍受改变纹理的基础/最大等级。
https://stackoverflow.com/questions/15731523
复制相似问题