ios – 为什么GLSL的算术函数会在iPad上产生与模拟器不同的结果?

前端之家收集整理的这篇文章主要介绍了ios – 为什么GLSL的算术函数会在iPad上产生与模拟器不同的结果?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在追逐在iOS设备上运行的OpenGL ES 2.0片段着色器代码中的一些错误.代码在模拟器中运行良好,但在iPad上它有很大的问题,一些计算产生了截然不同的结果,我在iPad上有0.0和在模拟器上有4013.17,所以我不是在谈论小差异可能是一些舍入错误的结果.

我注意到的一件事是,在iPad上,

float1 = pow(float2,2.0);

可以产生与结果非常不同的结果

float1 = float2 * float2;

具体地说,当对包含较大负数的变量(如-8)使用pow(x,2.0)时,它似乎返回一个满足条件的值if(powResult< = 0.0). 此外,两个操作(pow(x,2.0)以及x * x)的结果在模拟器中产生的结果与在iPad上产生的结果不同. 使用过的浮子是mediump,但我得到了与highp相同的东西. 对这些差异有一个简单的解释吗? 我正在缩小问题范围,但需要花费很多时间,所以也许有人可以通过一个简单的解释来帮助我.

解决方法

猜你在找的iOS相关文章