在基于OpenGL ES的硬件上,我有MAD优化和接近无穷大/浮动边界的数字的问题。
我想要做的是:
vec2 k = d/l; // VERYY BIG number 10^6 -10^8, but still ok by itself
//vertex.w = 0 or 1
res += k * (1.0 - vertex.w); // enable/disable by !vertex.w This form is ok
//res += k - k *vertex.w; // but this is not (I think it becomes NaN, cuz I don't see a thing)最令人感兴趣的(让我为此苦苦挣扎了很长一段时间)是在桌面硬件上可以正常工作。
所以..。这是正常的行为,还是我遗漏了什么?
发布于 2014-04-11 18:17:17
这可能取决于GPU的浮点分辨率(应该是Adreno 203?)。
大多数时候,这取决于驱动程序对浮点数执行的优化,当应用中精度时(AFAIK)剥离浮点数的尾数的一部分(希望说得好)。
尝试包括“精度高浮点”在你的着色器。如果您的情况是上述情况,它应该可以解决问题。
我希望在某些方面能有所帮助。
莫里齐奥
https://stackoverflow.com/questions/22802778
复制相似问题