1. ホーム
  2. c

[解決済み] OpenGLにおけるマトリックススタックのポイントは?

2022-02-07 04:46:51

質問内容

なぜOpenGLのマトリックススタックを使うのでしょうか(自分のマトリックスクラスをラップしてそれを使うのとは対照的)?なぜ、このような単純なタスクのために、こんなに複雑なのか、よくわかりません。何か特別なユースケースがあるのでしょうか?

もし必要ないのであれば、それに代わる良いものは何でしょうか?

どのように解決するのですか?

OpenGLのマトリックススタック(マトリックスモードごとに複数ある)は、階層的なモデルで使用することを目的としています。 つまり、子オブジェクトが描画されたときの親の位置や向きに関係なく、親オブジェクト(例えば、車)に対する子オブジェクト(例えば、車輪)のリギングを定義することができます。 つまり、トランスフォームの合成を簡単かつ直感的に行うことができるのです。

matixスタック(およびGL行列演算一般)は、汎用の行列演算ライブラリの代用にはなりません。 それらは単に、構成された変換を頂点データに効率的に適用できるようにするために存在しています。 他の人が言ったように、この機能は、固定関数パイプラインの終焉とともに OpenGL から削除されましたが、それはシェーダプログラムのニーズが古いパイプラインの ニーズよりも均一でないためです。