mediump float
在GLES着色器中应该足够用于纹理坐标,但对于屏幕坐标来说足够了吗?GLES mediump float是否具有足够的精度来映射显示坐标?
按照this answer,mediump float
具有范围量好 - 从-16384
到+16384
,但是精度只有10位,这意味着,上面+1024
或低于-1024
,浮子变量可以以递增只有两个像素如果我对它的理解正确,那么你会在屏幕边缘附近的纹理之间产生像素误差和接缝。
随着现代手机的显示分辨率高达3840x2160
,看起来中介不足以指定顶点着色器中像素完美的屏幕坐标。
我猜想1920x1080
屏幕仍然可以,如果您使用屏幕中间作为零坐标,而不是左上角或左下角,并且小心您正在这些屏幕上执行的算术运算变量永远不会超过其安全-1024:+1024
范围。
手机制造商也可以增加其GFX硬件浮点精度超过规格,以匹配他们更大的屏幕,但我怀疑他们会。
有人可以确认吗?