補間とは何か、3D コンピュータ グラフィックスでどのように使用されるかを簡単な言葉で説明するのを手伝ってくれる人がいるかどうか疑問に思っていました。
4 に答える
簡単に言えば、2 つの点 A と B が与えられたとき、それらの間の点を見つけます。
たとえば、ある行に沿って x=1 から x=4 まで 1 ステップで何かを移動したい場合:
1-----------------------4
最初のステップは場所 1 にあり、2 番目のステップは場所 4 にあるため、オブジェクトはある場所から別の場所に即座に移動します。ただし、オブジェクトが遷移するのに一定の時間またはフレーム数が必要な場合は、等間隔の中間点を見つけて調整する必要があります。
オブジェクトが 1 から 4 に移動するのに 2 ステップ (またはフレーム) かかるようにするには、
1-----------X-----------4
適切なタイミングでそこにオブジェクトを描画できるように、新しいポイント (X) を計算する必要があります。この場合、点 X は
(max-min)
location = min + (current_step) * --------
steps
location
私たちが見つけようとしているものです。min
=1、max
=4、およびこの例ではsteps
=2 スパンを 2 つのステップに分割したいため:
step: location:
0 1
1 2.5
2 4
1------------(2.5)-----------4
4 つのステップを実行する場合:
step: location:
0 1
1 1.75
2 2.5
3 3.25
4 4
1---(1.75)---(2.5)---(3.25)---4
などなど。4 つのステップで、オブジェクトはフレームごとに合計距離の 25% 移動します。10 歩、10% など、うんざりします。
多次元の場合 (オブジェクトが 2 次元または 3 次元の軌道を持つ場合)、これを各 X、Y、Z 軸に個別に適用します。
これが線形補間です。他にも種類があります。いつものように、Google がお手伝いします。
その他のアプリケーションには、テクスチャ マッピング、アンチエイリアシング、画像のスムージングとスケーリングなどがあります。もちろん、ゲームやグラフィックス以外の用途も多数あります。
注: 多くのフレームワークが既にこれを提供しています。たとえば、XNA ではMatrix.Lerpです。
補間とは、あるものから別のものへのスムーズな調整です。アニメで使われています。
たとえば、オブジェクトが位置 1 にあり、それを 6 秒間かけて位置 2 に移動したい場合、2 つのエンドポイント間の位置をゆっくりと補間する必要があります。補間は、そのパス上の場所の検索も指します。
補間とは、他のポイントに基づいてポイントを「推測」することです。
たとえば、ポイント (0,0) と (2,2) がある場合、ポイント (1,1) もセットに属していると「推測」できます。
シンプルなアプリケーションは、2 点から直線を導き出すことです。
同じことが 3 次元または実際には n 次元で機能します。
3Dグラフィックスで使用されます
- アニメーションの場合、開始と終了の調整に基づいて物の位置を計算する
- ラインの計算
- グラデーション
- グラフィックスのスケーリングとおそらくもっと多くの