もしそうなら、頂点シェーダーは今日の正投影を行うための標準的な方法ですか?
完全ではありません。頂点シェーダーが計算を実行しますが、変換行列は通常、ユニフォームを介してシェーダーに供給されます。シェーダーは、頂点ごとに異なるものだけを評価する必要があります。「ortho」関数を実装すると、GLSLでの射影行列の戻りは逆効果になります。
最新のOpenGL技術のみを使用して正投影を設定したいと思います(つまり、即時モードのものは使用しません)。これに取り組む方法について、ウェブ上で矛盾する情報を見ています。
バージョン3より前のOpenGLのマトリックススタックは、イミディエイトモードとは何の関係もありません。イミディエイトモードはでしたglBegin(…); for(…){ ...; glVertex(…);} glEnd()
。また、OpenGLバージョン3までは、頂点シェーダーのマトリックススタックを介して指定されたマトリックスを使用するのが一般的でした。
OpenGL-3では、当初OpenGL-2で計画されていたことが目的でした。つまり、APIの統合と、古い問題の削除です。削除されたものの1つは、マトリックススタックでした。とにかく、多くのシェーダーはすでに標準の行列よりも多くを使用しているため(たとえば、スケルタルアニメーションの場合など)、行列はすでにユニフォームとして渡されており、プログラムには行列の数学コード全体が含まれています。OpenGL-3からマトリックス数学を削除するステップを踏むことは、次の論理的なステップにすぎませんでした。