2017-03-16 10 views
1

쿼드가 있다고 가정하면 풀 테이블 텍스처가 적용됩니다. 나는 첫 번째 세 꼭지점 (파란색으로 강조 표시)에 대한 UV 좌표를 알고 있지만 네 번째는 아닙니다. 전술 한 화상, 예를 들어 첫 번째 세 번째부터 UV 좌표의 네 번째 세트를 결정하십시오.

enter image description here

, 전 좌측 상단 좌표는 알고 [0, 0] [0, 1]과 왼쪽 아래이고, 우측 상단 좌표는 [0, 1] . 오른쪽 하단 UV 좌표를 수학적으로 어떻게 결정할 수 있습니까 [1, 1]? UV 좌표의 네 번째 세트가 수학적으로 무엇인지 알아 내려고합니다. 삼각형에 표시된 텍스처가 UV 좌표가 쿼드에 들어갈 것입니다.

enter image description here

나는 복잡한 상황을 처리 할 수 ​​있어야합니다. UV 좌표와 X, Y, Z 좌표는 항상 평평한면을 제외하고는 아무 것도 될 수 없습니다.

enter image description here

마지막으로, 나는 정점의 수와 얼굴이를 계산 할 수 있어야합니다. 이것에

enter image description here

내 초기 접근 방식은 내가 관계를 발견 할 때까지 U는 Y 및 Z에 대한 다음 같은 특정 X의 거리에 변화를 조정하고, 얼마나 많은 검사를 포함,하지만 난 그 새로운 예외를 찾는 유지 논리와 나는 더 간단한 방법이 있는지 궁금 하네.

4 번째, 5 번째 ... n 번째 점을 계산하기 위해 UV를 어떻게 삽입 할 수 있습니까? 어떤 특별한 코딩 언어도 - 나는 단지 접근법을 찾고 있습니다.

답변

1

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 
,174,515 V21 = P2 - P1V31 = 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 

: 15,

이 같이 다시 쓸 수 < V1, V2 > 차원의 내적이다

< V, V21 > = l2 < V21, V21 > + l3 < V31, V21 > 
< V, V31 > = l2 < V21, V31 > + l3 < V31, V31 > 

V1V2 벡터들.

그래서 (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