【发布时间】:2016-09-26 16:07:50
【问题描述】:
GLES 着色器中的mediump float 对于纹理坐标来说应该足够了,但是对于屏幕坐标来说就足够了吗?
根据this answer,mediump float有一个很好的范围-从-16384到+16384,但是精度只有10位,这意味着高于+1024或低于-1024,如果我理解正确的话,float 变量一次只能增加两个像素,所以你会在屏幕边缘附近的纹理之间出现像素错误和接缝。
随着现代手机的显示分辨率达到3840x2160,看起来mediump 不足以在顶点着色器中指定像素完美的屏幕坐标。
我猜1920x1080 屏幕仍然可以,如果您使用屏幕中间作为零坐标,而不是左上角或左下角,请注意您正在执行的算术运算这些变量永远不会超出其安全的-1024:+1024 范围。
手机制造商也可以将其 GFX 硬件中的浮点精度提高到高于规格,以匹配他们更大的屏幕,但我怀疑他们会这样做。
有人可以确认一下吗?
【问题讨论】:
标签: shader opengl-es-2.0 vertex-shader