OpenGL 変換を一般的なベクトルにする方法はありますか?
明らかな方法は、モデルビュー マトリックスを照会して自分で乗算を行うことですが、OpenGL にこれを実行させる方法があるはずだとほぼ確信しています。
OpenGL 変換を一般的なベクトルにする方法はありますか?
明らかな方法は、モデルビュー マトリックスを照会して自分で乗算を行うことですが、OpenGL にこれを実行させる方法があるはずだとほぼ確信しています。
そうです、モデルビュー マトリックスを取得し、ベクトルを自分で変換する必要があります。
確認については、パラグラフ 9.120 のこのリンクを参照してください。
OpenGL の外部で計算を行うのが最善です。Matrix and Quaternions FAQは、計算の実行方法をまだ知らない場合に学習するための優れたリソースです。次のように 4x4 モデル ビュー マトリックスをフェッチします。
float modelview[16];
glGetFloatv(GL_MODELVIEW_MATRIX, modelview);
CPU側で変換を行うのがおそらく最善です。私が考えることができる他の唯一の方法は、EXT_transform_feedbackに加えて、モデルビュー変換のみを行う頂点シェーダーを使用することです。
opengl がおそらくこれを実行しない理由は、計算がレンダリング パイプラインの一部ではないためです。そしてopenglは(ほとんどの場合)表示ループ中にのみ計算を実行します。したがって、この種の同期インターフェースを提供しても意味がありません。