0

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で割り切れる値に丸めているかのように。ピクセル間の補間をスムーズにして、動きが非常に遅いときにアニメーションが見栄えがするようにします。

ピクセルにスナップするだけでなく、サブピクセル間の頂点を補間するにはどうすればよいですか?

4

0 に答える 0