アニメーションできるメッシュが欲しいです。キー フレームを含むメッシュをファイルから読み込んでいます。すべてのフレームを VBO に入れ、そのうちの 2 つを GPU の頂点シェーダーで構成したいと考えています。したがって、フレームを GPU に渡し、これら 2 つのフレームから 1 つの結果フレームを作成できるユニフォームをいくつか渡したいと考えています。
出来ますか?もしそうなら、どうすればできますか?
頂点属性が増えるだけです。通常、次のような場合があります。
in vec3 position;
in vec3 normal;
in vec4 color;
in vec2 texCoord;
モーフ ターゲットでは、次のものが必要です。
in vec3 position0;
in vec3 position1;
in vec3 normal0;
in vec3 normal1;
in vec4 color;
in vec2 texCoord;
実際のモデル空間の位置は、 と の間の線形補間にposition0
なりposition1
ます。ノーマルも同様です(たぶん)。それらを取得したら、通常の変換を介して渡します。色とテクスチャの座標はおそらく変更されませんが、変更される場合は、それらにもバージョンが必要0
です1
。
実際のレンダリングは非常に単純です。おそらく、モーフ ターゲットのすべての位置が同じバッファにあるでしょう。したがって、position0
のアトリビュートを最初のモーフ ターゲットにバインドし、position1
のアトリビュートを 2 番目のモーフ ターゲットにバインドするだけです。法線についても同様です。次に、通常どおりにレンダリングします。