0

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

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

我已经阅读了这个问题,但他们似乎正在使用 GLSL 1.4 或更高版本。不幸的是,我没有那个选项。

GLSL 1.2 片段程序中是否有任何方法可以对特定的 mipmap 级别进行采样?

如果没有直接执行此操作的功能,是否可以在不执行 8 个副本的情况下将 mipmap 作为单独的纹理发送?

4

1 回答 1

1

片段着色器(在 GLSL 1.20 中)无法访问特定的纹理 mipmap。但是,您始终可以在使用纹理之前更改其基本/最大 mipmap 级别。通过将它们都设置为相同的级别,您可以强制从该纹理访问任何纹理以使用特定的 mipmap 级别。

现在,您无法制作这些单独的纹理(除非您使用的是 NVIDIA 硬件并且可以访问 ARB_texture_view)。因此,每次您想选择一个新的 mipmap 时,您都必须忍受更改纹理的基本/最大级别。

于 2013-03-31T23:07:36.723 回答