スプライトをテクスチャとして読み込んでいて、それをアニメーション化して、左または右に「向く」ようにする必要があります。基本的に、「反転」する必要がある場合があります。OpenGL には、オブジェクトを再配置する gltranslate と、オブジェクトを回転させる glrotate があることを知っています。1つの軸を横切って単純に反転する方法はありますか? そうでない場合、どのようにこれを達成しますか?
2 に答える
ポイント スプライトをいじったことはありませんが、テクスチャだと思います。glTranslatef()
テクスチャにはテクスチャ マトリックスがあります。これは、glScalef()
およびを使用できることを意味glRotatef()
します。
glScalef(-1,1,1);
テクスチャ座標を X 軸で反転させる線に沿って何かを試してみます。
私が言ったように、私はポイント スプライトで遊んだことはありませんが、テクスチャ マトリックスもいじりませんでした。ただし、それらは非常に便利なようです。
更新:その間、テクスチャ マトリックスで遊んでみました。モデルビュー マトリックスと投影マトリックスを切り替えるのと同じ方法で、テクスチャ マトリックスに切り替えることができます。おおよそ:glMatrixMode(GL_TEXTURE);
その後、前述の操作を実行できます。
また、四角形/2 つの三角形をペイントして、それで完了することもできます:)
これは、OpenGL ポイント スプライトでは実行できません。スプライトの中心は移動できますが、形状は常に同じ向きになります。
できることは、スプライトをクワッドとして描画することです。これにより、スプライトを好きなように反転、回転、いじることができます。NeHeでスプライト (別名ビルボード) を手動で描画するチュートリアルがあります。