我试图用WebGL在地图上移动标记。
为此,我将2个顶点属性和一个制服发送到顶点着色器:a_position,a_next_position和u_completion。
在着色器中,我将当前位置计算为: vec2 current_pos = a_pos + u_completion *(a_next_pos - a_pos);
我每秒只更新顶点属性,但是我在每次绘制调用时都更新了统一,以便在标记位置之间平滑过渡。 u_completion值在requestAnimationFrame循环中以js计算为: completion =(now-lastRefresh)/ 1000;
问题: 这几乎可以工作,但是在转换结束时,标记会在其初始位置显示一瞬间。 我怀疑这是因为在更新顶点属性之前将完成重置为0。我怎么能避免这种情况?我是webgl的初学者。