2

4 つのエッジがあり、3 次元空間に存在するという点で、湾曲した紙に似た 3D 三角メッシュがあります。エッジは長さが異なり、カーブも異なりますが、理論的には、紙のように見えるように連続的に変形することができます。UV 座標はすべての頂点に割り当てられており、u と v の範囲は 0 から 1 です。一部の頂点は明らかに境界線上にあります。下の境界では、u は [0,1] の範囲内にあり、v は 0 です。上の境界の頂点は、[0,1] 内に u があり、v = 1 です。左と右の境界は、u = 0 または u = 1 です (それぞれ) [0,1] 内の v を使用します。

ここで、u = 0.5 の「アイソカーブ」について考えてみましょう。これは、サーフェスの「中央」の下から上までの「線」(または線分の集合?) になります。それを見つけるにはどうすればよいですか?

または、UV 座標 (0.2,0.7) に対応する 3D 座標を見つけたいとしましょう。どうすればそこに着くことができますか?

レンダラー (OpenGL など) を介してデータを配置することでこれを実装したくありません。きっと標準的な方法があるはずです。テクスチャ マッピング関数の逆のような感じです。

4

1 に答える 1

1

基本的に、両方の質問は同じものに要約されます:UVXYZ座標の間で変換する方法です。

これは補間の問題です。メッシュ内の 1 つの三角形を考えると、3 つの頂点でのUVと座標の両方がわかります。XYZそのため、X、Y、Z を U、V の線形関数として補間するための適切な量のデータがあります。

X(U,V) = a0 + a1*U + a2*V
Y(U,V) = b0 + b1*U + b2*V
Z(U,V) = c0 + c1*U + c2*V

次に、係数aibi、をどのように決定するかが問題になりますci。これは、与えられた頂点データに基づいて一連の線形方程式を解くことによって実行できます。たとえばX、特定の三角形の係数は、次を解くことによって見つけることができます。

[X1]   [1 U1 V1]   [a0]
[X2] = [1 U2 V2] * [a1]
[X3]   [1 U3 V3]   [a2]

メッシュ内の各三角形のこれらの係数をすべて取得したら、任意のペアのXYZ座標を決定できます。UV

1. Locate the triangle that contains the UV point.
2. Evaluate the X(U,V),Y(U,V),Z(U,V) functions for the given triangle.
于 2014-05-16T20:14:42.193 に答える