2

アニメーションできるメッシュが欲しいです。キー フレームを含むメッシュをファイルから読み込んでいます。すべてのフレームを VBO に入れ、そのうちの 2 つを GPU の頂点シェーダーで構成したいと考えています。したがって、フレームを GPU に渡し、これら 2 つのフレームから 1 つの結果フレームを作成できるユニフォームをいくつか渡したいと考えています。

出来ますか?もしそうなら、どうすればできますか?

4

1 に答える 1

3

頂点属性が増えるだけです。通常、次のような場合があります。

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 番目のモーフ ターゲットにバインドするだけです。法線についても同様です。次に、通常どおりにレンダリングします。

于 2011-09-27T07:13:42.260 に答える