반응형
그림기호 설명
tn: triangle normal
rd: ray direction
p: hit point
ro: ray origin
v0, v1, v2: triangle vertex
위 그림에서 ray origin으로부터 ray direction의 최단거리 t는
t = ((v0 - ro) • tn) / (rd • tn) •는 내적
로 구할 수 있습니다. t가 구해지면 hit point p는
p = ro + rd * t
로 구할 수 있습니다. 단순히 교차점만 구하면 계산은 여기서 끝이 나지만,
삼각형과 직선 ray가 교차하는지 판별을 위해서는 hit point가 삼각형 안에 있는지 판별이 필요합니다. 판별은 외적을 이용해서 할 수 있습니다.
k1 = (v1-v0) x (p-v0) x는 외적
k2 = (v2-v1) x (p-v1)
k3 = (v0-v2) x (p-v2)
k1, k2, k3 모두 벡터인데 이 벡터는 triangle normal과 내적해서 모두 0보다 크게 나와야 점 p가 삼각형 안에 있는 점이고, 한 개라도 내적 값이 0보다 작게 나오면 p는 삼각형 밖에 있는 점이라서 직선 ray는 삼각형과 교차하지 않게 됩니다. 이와 같이 외적은 아래글 CCW을 판별할 때도 사용했었습니다.
2023.11.13 - [3D Algorithm] - CCW 판별 알고리즘(Counter Clockwise)
반응형
'3D Algorithm' 카테고리의 다른 글
내적을 이용한 특징점 계산 (0) | 2024.04.09 |
---|---|
선형 방정식을 이용한 직선 삼각형 교차점 계산 (0) | 2024.04.02 |
벡터 내적 외적 계산 공식과 결과 의미 (0) | 2024.03.12 |
사이각 벡터 계산 (0) | 2024.03.08 |
비율(ratio)을 이용한 3차원 점 이동 (0) | 2024.02.20 |