1

(Mac OS X、Cocoa、C/C++、OpenGL、多少数学的に難しい。)

Project は、2D ビューのリアルタイム (30fps) ポーカー ゲームです。OpenGL ビューは、glOrtho を使用して正投影用に設定されています。カメラは常にカード/テーブルを直接見下ろしています。これまで、基本的には 2D 画像合成エンジンでした。

私のトランプは事前に構築されたテクスチャ (アルファ付き) であり、次のようにレンダリングされます。

glBegin(GL_TRIANGLE_STRIP);
    glTexCoord2f(0.0, 0.0);
    glVertex3d(startDraw_X, startDraw_Y, 0.0);

    glTexCoord2f(1.0, 0.0);
    glVertex3d(endDraw_X, startDraw_Y, 0.0);

    glTexCoord2f(0.0, 1.0);
    glVertex3d(startDraw_X, endDraw_Y, 0.0);

    glTexCoord2f(1.0, 1.0);
    glVertex3d (endDraw_X, endDraw_Y, 0.0);
glEnd();

これはうまく機能し、1:1 のピクセル マッピングを提供して高画質を実現します。

質問: OpenGL を使用してカードを (安価に、すばやく) 「反転」または歪ませるにはどうすればよいですか? 回転部分は難しくないのですが、遠近感が苦手です。

具体的には、iPhone アプリケーション (音楽など) での UIView の水平反転アクションを念頭に置いています。UIView は、水平方向に縮小して反転するように見え、遠近感があります(ビューの「後方」座標は垂直方向に縮小します)。

助けやヒントをありがとう。

4

2 に答える 2

2

glOrthoを使用して正投影を設定する代わりに、 を使用glFrustumして透視投影を設定します。

于 2010-08-19T03:49:21.033 に答える
1

あなたのゲームは2Dなので、トップビューカメラだと思いますよね?

この場合、プロジェクションマトリックスをプロジェクションマトリックスとして設定し、カメラをテーブルの中央、適切な高さ(FoVに応じて> 1.2 xテーブルの幅)に配置し、他に何も変更しないでください。

カード(およびその他のゲームアイテム)の高さを、現在の高さよりもテーブルからかなり近くに設定する必要がある場合があります(オルソでは、Zに沿った10メートルのデルタは表示されないため)。

オルソとパースペクティブを混在させることは技術的には可能ですが、その利点はよくわかりません。ただし、ゲーム内に特別な処理が必要な特別なアセットがある場合があります...

于 2010-08-19T13:21:31.350 に答える