OpenGLESで2つの三角形のゆっくりとした動きをアニメートしようとしています。
私の位相オフセットは、実行ループの反復ごとに0.003fずつ増加するフロートですが、三角形はしばらく移動せず、右に1ピクセルだけジャンプします。
GLfloat vertices[ ] = {
rect.origin.x, rect.origin.y + rect.size.height,
rect.origin.x + rect.size.width, rect.origin.y + rect.size.height,
rect.origin.x, rect.origin.y,
rect.origin.x + rect.size.width, rect.origin.y
};
glVertexPointer(2, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
値が小数桁の浮動小数点数であることを確認しました。例:0、0.003、0.006、... 0.3、0.303、0.306、...など。
したがって、ピクセル間をゆっくりと補間する代わりに、OpenGLESはジャンプダウンします。頂点を0.5のような値に設定すると、2つのピクセルの間に配置されます。ただし、0.6に設定しても効果はなく、0.7に設定すると、次のピクセルにスナップするだけです。それらの値を完全または0.5で割り切れる値に丸めているかのように。ピクセル間の補間をスムーズにして、動きが非常に遅いときにアニメーションが見栄えがするようにします。
ピクセルにスナップするだけでなく、サブピクセル間の頂点を補間するにはどうすればよいですか?