3

iOSでGLKViewを使用してレンダリングされるOpenGLESゲームを作成しました。また、GLKViewの上に配置されるカスタムUIButtonをいくつか追加しました。GL_POINTSレンダリングでは、レンダリングモードを使用していくつかの星を描画しています。シミュレーターではすべてが正常にレンダリングされますが、デバイスではひどく見えます。

正しいレンダリング画像を取得するためにセットアップが必要になる可能性のあるデバイスで構成/監視する必要があることについて、誰かがアドバイスを持っているかどうか疑問に思いました。

結果の画像をいくつか示します。

シミュレーター

iPhoneシミュレーターで実行されているゲームのスクリーンショット。

端末

ここに画像の説明を入力してください

(カスタムボタンのスケーリングの違いは無視してください-デバイスのスクリーンショットはiPadで撮影されました)。

4

1 に答える 1

3

gl_PointSize問題は、OpenGL ES のシェーダーで設定されていないことに関係していたことが判明しました。GL_POINTS星 (レンダリング モードを使用して描画) は、シミュレーターよりもデバイス上で根本的に間違っているため、スクリーンショットは実際にこの解決策につながりました。

おそらく OpenGL のデスクトップ バージョンの場合、ポイント サイズはglPointSizeデフォルトで関数を使用して設定されます (GL_VERTEX_PROGRAM_POINT_SIZE有効になっていない場合)。OpenGL ES にはglPointSize関数がないため、ポイント サイズの値は常にgl_PointSize頂点シェーダーの組み込み変数を使用して指定する必要があります。

于 2012-03-19T15:47:47.320 に答える