OpenGLでモデル(たとえば、人間、歩行)をアニメートしたいと思います。スケルタルアニメーション(トリッキーな数学)のようなものがあることは知っていますが、これはどうですか?.
glMapBufferRange
で何かわかりました。このアイデアはほんの少しのスクリプトにすぎないことは知っていますが、さらに調査する価値はありますか? VBOの「keyFrame」/モデルを変更するための良い概念は何ですか?
私はそのメモリの問題を知っていますが、小さなモデル(そしてあまり多くのアニメーションではない)でそれを行うことができると思います。
はい、あなたが言及している方法は、初期の3Dビデオゲーム(地震など)で非常に人気がありました。
あなたが説明したのとは少し異なる方法で実装することをお勧めします。アニメーションのすべての可能なフレームのキーフレームをエクスポートする代わりに。より多くの分散キーをエクスポートし、頂点位置を補間します。これにより、メモリ使用量を大幅に減らして、よりスムーズな再生が可能になります。
これには、単一の(ストリーミングまたは動的)VBOが必要です。各フレームで前と次のキーフレームを見つけ、頂点を補間して、結果をVBOにアップロードします。
実際には、シーンのすべてのフレームをOBJとしてエクスポートするようにblenderを設定できます。カスタムツールは、これらのファイルをニースアニメーション形式にコンパイルできます。
ここを読んでください: