MultMatrixは4x4行列のみを乗算するように見えますが、これはOpenGLの目的には意味がありますが、OpenGL内にもっと一般的な行列乗算関数が存在するかどうか疑問に思いました。
2 に答える
いいえ、 GLシェーダー言語を含むドキュメントを見ると簡単に確認できます。最大の行列データ型は4x4です。
非常にトリッキーな方法でOpenGLプリミティブを使用することにより、GPUに、暗号化などの文字列やテキストの操作など、より汎用的な計算を実行させるという技術があります。しかし、あなたは汎用の行列乗算関数を求めました。
OpenCLは多少異なる話です。乗算プリミティブはありませんが、一般的な数値計算用に設計されているため、例とライブラリは非常に一般的です。
CUDAでNVIDIAプロセッサの一般的な行列乗算を簡単にコーディングすることもできます。彼らのチュートリアルには、そのようなルーチンの設計が含まれています。
多くの人は、レガシーOpenGL(OpenGL-2.1まで)の行列乗算は、何らかの方法でより高速になると考えています。これはそうではありません。固定関数パイプライン行列操作関数はすべてCPUで実行され、描画呼び出しの前にオンデマンドでのみGPU行列レジスタを更新します。
行列数学の乗算を行うためにOpenGLを使用することに利点はありません。GPGPUコンピューティングを実行したい場合は、OpenCLまたは計算シェーダーのいずれかを使用してこれを実行する必要があります。実際にその恩恵を受けるには、非常によく並列化された問題に適用する必要があります。