【发布时间】:2013-07-29 05:59:50
【问题描述】:
在 GL ES 2.0 中,texture2DLod 函数在片段着色器中不可用。 我需要移植 GLSL 着色器。
在 GL ES 2.0 中,我只能使用 texture2D(sampler2D sampler, vec2 coord, float bias)
告诉我如何计算与已知值LOD(详细程度)等效的偏差值?
//Example GLSL:
float lod=u_lod;
textureLod(sampler, (uInverseViewMatrix * vec4(r, 0.0)).xy, lod);
//I need GL ES 2.0:
float lod=u_lod;
float bias=? <-----calc bias from lod
texture2D(sampler,(uInverseViewMatrix * vec4(r, 0.0)).xy,bias)
【问题讨论】:
-
这里的纹理坐标知道什么?因为,一般来说,您不。但是,如果您知道纹理坐标将选择什么 LOD,那么您也许可以使其工作。或者,换句话说,有一个原因为什么 ES 2.0 不支持
textureLOD;因为它不能。 -
在 Open GL ES 2.0 的规范中,textureLod 仅在顶点着色器中可用。