我在 GLSL 中为一个安卓游戏制作了一个着色器。在这个着色器中,我必须计算当前像素和 FX 中心之间的长度
此着色器包含以下行:
//compute distance between current pixel and the center of the fx
highp vec2 tc = MCPosition - center;
int dist = int(length(tc));
if (length(tc) < 720.)
{
...
MCPosition 是一个 highp vec2,它包含当前像素的坐标。center 是一个 highp vec2,它包含 FX 的中心
此着色器在许多设备(Galaxy Nexus、kindle fire、...)上运行良好,但在三星 Galaxy S3 上,当预期结果超过 256 时,length(tc) 返回不正确的值,就像它将所有浮点值管理为 mediump 一样。
有人可以解释一下为什么吗?