[gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정
DESCRIPTION
gpg1권 4.4 빠른 원통 절두체 교차 판정TRANSCRIPT
![Page 1: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/1.jpg)
GPG1 – 4.4빠른 원통 - 절두체 교차 판정
2011/01/15Devrookie 엠에스박 ( 박민수 )
![Page 2: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/2.jpg)
목차
시야 절두체 평면의 방정식 구 교차 판정 박스 교차 판정 원통 교차 판정Q & A
![Page 3: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/3.jpg)
시야 절두체
![Page 4: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/4.jpg)
시야 절두체
시야 절두체의 속성 초점 거리 종횡비 근단면 원단면
![Page 5: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/5.jpg)
시야 절두체
초점 거리초점 거리 값을 기준으로 절두체를 규정 .
L = 1 / tan(fov/2)
![Page 6: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/6.jpg)
시야 절두체
종횡비뷰포트의 높이를 너비로 나눈 값
초점 거리 위치에 있는 평면의 x, y 값을 구함1
A = height / width
![Page 7: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/7.jpg)
시야 절두체
근단면 , 원단면가까운 평면과 먼 평면의 깊이 값
해당 사이의 볼륨 영역이 시야 절두체가 됨
N / L * 1
F / L * A
![Page 8: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/8.jpg)
시야 절두체
초점 거리와 종횡비로 각 평면의 법선 구하기
근 단면 : (0, 0, 1)원 단면 : (0, 0, -1)왼쪽 : (f, 0, 1)오른쪽 : (-f, 0, 1)위쪽 : (0, -f, a)아래쪽 : (0, f, a)
그리고 각각 정규화 하면 됨 .
![Page 9: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/9.jpg)
평면의 방정식
평면의 방정식
ax + by + cz + d = 0
![Page 10: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/10.jpg)
평면의 방정식
평면의 방정식
평면 : (a, b, c, d)어떤 점 : (x, y, z)
ax + by + cz + d = 0 -> 평면 위에 있다 .
ax + by + cz + d > 0 -> 평면 앞에 있다 .
ax + by + cz + d < 0 -> 평면 뒤에 있다 .
![Page 11: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/11.jpg)
구 교차 판정
구center 와 radius 로 표현된다 .
![Page 12: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/12.jpg)
구 교차 판정
구 교차 판정
각 절두체 평면과 구의 중심점의 거리를 구하고
평면 밖에 있는가 없는 가를 판단하여 판정한다 .
![Page 13: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/13.jpg)
구 교차 판정
구 교차 판정
평면의 방정식에 구의 중심점을 넣는다 .구의 반지름 만큼 평면 밖에 있어도 교차로
판정 .
ax + by + cz + d < -radius
면 평면에서 벋어난 것으로 판정하면 됨 .
![Page 14: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/14.jpg)
박스 교차 판정
박스 교차 판정Min , Max 값으로 표현된다 .
![Page 15: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/15.jpg)
박스 교차 판정
박스 교차 판정파이 -> 평면 0~5
n -> 평면의 법선벡터
B -> AABB 박스
![Page 16: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/16.jpg)
원통 교차 판정
원통반지름과 양 끝 점으로 표현된다 .
![Page 17: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/17.jpg)
원통 교차 판정
유효 반지름 구하기r’ = rsin@
![Page 18: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/18.jpg)
원통 교차 판정
유효 반지름 구하기
r’ = rsin@
sin^2@ + cos^2@ = 1
R’ = r*sqrt(1-cos^2@)
cos@ = (P2-P1) dot N / ||(P2-P1)||
![Page 19: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/19.jpg)
원통 교차 판정
알고리즘
P1, P2 가 모두 평면의 음의 방향에 있으면 외부에 있는 것을 판정
P1, P2 가 모두 평면의 양의 방향에 있으면 다음 평면에서 판정
P1, P2 중 하나는 음의 방향 하나는 양의 방향에 있으면 두 점을 있는 선분과 평면의 교점을 구해 음의 방향의 끝점으로 대체 후 다음 평면에서 판정
양 끝점이 모두 음의 방향에 있지 않으면 교차 한다고 판단한다 .
![Page 20: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/20.jpg)
원통 교차 판정
선분과 평면의 교점 구하기
P = P1 + t(P2–P1) ( 0 < t < 1 )
t = d - P1 dot N / (P2-P1) dot N
![Page 21: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/21.jpg)
판정의 최적화
판정의 최적화
계산이 간편한 근평면 , 원평면을 먼저 계산 .
마지막 평면까지 판정이 왔다면 평면과 두 점사이의 교점을 구할 필요가 없고 한 점이라도 양의 방향에 있다면 더 이상 구할 필요가 없다 .
![Page 22: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/22.jpg)
Q&A
![Page 23: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정](https://reader036.vdocuments.net/reader036/viewer/2022062300/559138a71a28ab07498b46dc/html5/thumbnails/23.jpg)
마무리
The End