マリオカートのようなゲームの開発者がレベルの向きをどのように切り替えているのか疑問に思っています. OpenGLでこれを行う簡単な方法はありますか? ご存じない方のために説明すると、レベルを「ミラー」モードでプレイすると、通常は左側にあるドアが右側になります。
ここに小さな例があります
これらの 4 つの頂点を持つポリゴン
X Y
Z W
だろう
Y X
W Z
これらの 4 つの頂点を持つポリゴン
あなたはそれを必要としません。
glScalef(-1.0f, 1.0f, 1.0f)
、たとえば x 軸ミラーです。glFrontFace
で呼び出しGL_CW
ます。つまり、前面を「反対」の値に変更します。3.0 シェーダーでも同じ原則を使用できます。ビルドに別のものを使用する必要がある場合でも同様です。
-1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
スケール マトリックス
ただし、ビデオ ゲームの場合は、その場で反転するのではなく、マップ全体をレベル エディターで反転して新しいレベルとして保存する方が簡単な場合があります (衝突検出)。