U/V属性が欠落している頂点のうち、barycentric coordinatesを計算し、これらの座標を使用して不足している属性(U/Vなど実際には他のもの)を推定します。ここ
位置P
とU/Vを有する追加の面頂点のための完全な導出と解決することT
座標:
P1 = (x1, y1, z1), T1 = (u1, v1)
P2 = (x2, y2, z2), T2 = (u2, v2)
P3 = (x3, y3, z3), T3 = (u3, v3)
P = (x , y , z), T = (u , v) = ?
三角形(P1
、P2
、P3
)を(支持面上の点P
従って、顔全体)重心座標l1
、l2
、l3
を有する:
P = l1 P1 + l2 P2 + l3 P3
with l1 + l2 + l3 = 1
これはのように書き換えることができる:ベクターV21 = P2 - P1
とV31 = P3 - P1
上ベクターV = P - P1
を投影
P - P1 = (l1 - 1) P1 + l2 P2 + l3 P3
= -(l2 + l3) P1 + l2 P2 + l3 P3
= l2 (P2 - P1) + l3 (P3 - P1)
with l1 = 1 - l2 - l3
を与える:
< V1, V2 >
が3Dベクトル
V1
と
V2
のドット積である
< V, V21 > = l2 < V21, V21 > + l3 < V31, V21 >
< V, V31 > = l2 < V21, V31 > + l3 < V31, V31 >
。
だから(l1
、l2
、l3
)線形システムを解くことによってP
ために見つけることができる:これは、明示的に解決することができる
G L = (< V21, V21 > < V31, V21 >) (l2) = (< V, V21 >) = D
(< V21, V31 > < V31, V31 >) (l3) (< V, V31 >)
L = (l2) = G^-1 D
(l3)
and l1 = 1 - l2 - l3
:
d = < V21, V21 > < V31, V31 > - < V21, V31 >^2
l1 = 1 - l2 - l3
l2 = (< V31, V31 > < V, V21 > - < V21, V31 > < V, V31 >)/d
l3 = (< V21, V21 > < V, V31 > - < V21, V31 > < V, V21 >)/d
注その位置P
の以来付加頂点が三角形の外側にある場合(P1
,P2
,P3
)、不等式l1, l2, l3 >= 0
は必ずしも保持されません。
最後に外挿さU/Vは、追加の頂点のT
座標計算:
T = l1 T1 + l2 T2 + l3 T3