平台:Android OpenGL ES 2.0
我使用OpenGL ES2.0在正方形上绘制纹理。 纹理在垂直方向无限滚动。
几帧之后渲染质量下降得非常快,纹理质量恶化。
截图#1
截图#2
如何纠正这个问题?
剂量不会无条件增加UV坐标,但在某个时间后重置。
UV坐标(即使使用整数坐标)在GPU寄存器内转换为浮点数,因此会受到浮点精度的典型损失。
而不是做
U+=deltaU; V+=deltaV;
做
U+=deltaU; while(U>1.0f) U-=1.f; V+=deltaV; while(V>1.0f) V-=1.f;
(这假定你使用标准的紫外线,所以坐标在0和1之间..如果不是只用你的MAXUV值代替1.0f