OpenGLES でスプライト/テクスチャを反転するにはどうすればよいですか?
-
01-07-2019 - |
質問
スプライトをテクスチャとしてロードしており、それをアニメーション化して、左または右に「向く」ことができるようにする必要があります。基本的に、場合によってはそれを「反転」する必要があります。OpenGL には、オブジェクトの位置を変更する gltranslate と、オブジェクトを回転する glotate があることは知っています。1つの軸を横切って単純に反転する方法はありますか?そうでない場合、どうやってこれを達成しますか?
解決
ポイントスプライトはいじったことがありませんが、テクスチャだと思います。テクスチャにはテクスチャ マトリックスがあるため、次のことが可能になります。 glTranslatef()
, glScalef()
そして glRotatef()
それらの上に。
私は次のようなことを試してみます glScalef(-1,1,1);
これはテクスチャ座標を X 軸で反転します。
先ほども言いましたが、私はポイント スプライトをいじったことはありませんが、テクスチャ マトリックスもいじりませんでした。ただし、それらは非常に便利なようです。
アップデート: その間、テクスチャ マトリックスをいじってみました。モデルビュー マトリックスと投影マトリックスを切り替えるのと同じ方法で、テクスチャ マトリックスに切り替えることができます。約: glMatrixMode(GL_TEXTURE);
その後、前述の操作を行うことができます。
四角形または 2 つの三角形をペイントして完了することもできます :)
他のヒント
OpenGL ポイントスプライトではこれを行うことはできません。スプライトの中心を移動することはできますが、スプライトの形状は常に同じ方向を向いています。
あなたは何ですか できる スプライトを四角形として描画することで、自由に反転、回転、いじることができます。スプライト (別名ビルボード) を手動で描画するチュートリアルがあります。 ネーヘ