2016-11-30 5 views
0

私はWindowsからiOSにアプリケーションを移動しています。 OpenGL ESで "OpenGL"を変換する必要があります。元のアプリケーションでは、glPush/PopAttrib命令がありましたが、OpenGL ESには存在しません。いくつかの人々はここで代替案について話します:http://qt.developpez.com/doc/4.7/opengl-hellogl-es/しかし、OpenGL ES 1.1(2または3ではなく)でのみ利用可能なglMatrixModeを使用しています。iOS | OpenGLES 2/3 - glMatrixModeの代替

OpenGL ES 2ではglMatrixModeの代替手段がありますか?

もっと正確にするには、QtとOpenSceneGraphのコンテキストを連携させようとしています。私はシェイダーで何が行われているかについては何も制御していません。

+0

シェーダにすべて書き直してください – Starl1ght

答えて

0

OpenGL ES 2.x以降の固定機能マトリックススタックサポートはありません。行列が必要な場合は、値を自分で計算し、glUniformMatrix*()経由で未処理のものをアップロードする必要があります。

この行列が必要とするものと、均一なシンボルの "名前"は完全にシェーダに依存し、ジオメトリ変換をどのように処理するかが決まります。通常、アプリケーションは、頂点ごとに計算を行う必要性を避けるために、CPU上のモデルビューおよび/またはモデルビュー投影行列のいずれかを連結したいと考えます。

OpenGL ES 1.xに存在する多くの概念は、OpenGL ES 2.xではまったく存在しません(たとえば、フラグメント用の固定機能照明パイプラインはありません)。そのため、単純な「ポート」やレンダリングエンジンの大きなチャンクを書き直す必要があります...