glsl 中的lowp vs. mediump vs. highp?

Ver*_*sen 5 shader opengl-es glsl opengl-es-2.0

过去一周我一直在研究自定义着色器。我遇到了各种奇怪的问题,直到我将几乎所有浮点变量都切换到highp.

然而,今天我发现如果我用于highp输入纹理坐标(介于 0 和 1.0 之间),双三次插值算法实际上会有色带。如果我使用mediump它工作正常。

我想知道是否有人可以解释为什么会这样。根据这份文件:

http://www.khronos.org/files/opengles_shading_language.pdf

highp 具有 2^-62 到 2^62 的浮点幅度范围,以及 2^-16 的浮点精度(相对)。

mediump浮点量级范围为 2^-14 到 2^14,浮点精度(相对)为 2^-10。

如果我正确理解这一点,这应该意味着它mediump总是不如highp. 为什么不是这样?