23
GPG1 – 4.4 빠빠 빠빠 - 빠빠빠 빠빠 빠빠 2011/01/15 Devrookie 엠엠엠엠 ( 엠엠엠 )

[Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

Embed Size (px)

DESCRIPTION

gpg1권 4.4 빠른 원통 절두체 교차 판정

Citation preview

Page 1: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

GPG1 – 4.4빠른 원통 - 절두체 교차 판정

2011/01/15Devrookie 엠에스박 ( 박민수 )

Page 2: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

목차

시야 절두체 평면의 방정식 구 교차 판정 박스 교차 판정 원통 교차 판정Q & A

Page 3: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

시야 절두체

Page 4: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

시야 절두체

시야 절두체의 속성 초점 거리 종횡비 근단면 원단면

Page 5: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

시야 절두체

초점 거리초점 거리 값을 기준으로 절두체를 규정 .

L = 1 / tan(fov/2)

Page 6: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

시야 절두체

종횡비뷰포트의 높이를 너비로 나눈 값

초점 거리 위치에 있는 평면의 x, y 값을 구함1

A = height / width

Page 7: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

시야 절두체

근단면 , 원단면가까운 평면과 먼 평면의 깊이 값

해당 사이의 볼륨 영역이 시야 절두체가 됨

N / L * 1

F / L * A

Page 8: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

시야 절두체

초점 거리와 종횡비로 각 평면의 법선 구하기

근 단면 : (0, 0, 1)원 단면 : (0, 0, -1)왼쪽 : (f, 0, 1)오른쪽 : (-f, 0, 1)위쪽 : (0, -f, a)아래쪽 : (0, f, a)

그리고 각각 정규화 하면 됨 .

Page 9: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

평면의 방정식

평면의 방정식

ax + by + cz + d = 0

Page 10: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

평면의 방정식

평면의 방정식

평면 : (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 빠른 원통 절두체 교차 판정

구 교차 판정

구center 와 radius 로 표현된다 .

Page 12: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

구 교차 판정

구 교차 판정

각 절두체 평면과 구의 중심점의 거리를 구하고

평면 밖에 있는가 없는 가를 판단하여 판정한다 .

Page 13: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

구 교차 판정

구 교차 판정

평면의 방정식에 구의 중심점을 넣는다 .구의 반지름 만큼 평면 밖에 있어도 교차로

판정 .

ax + by + cz + d < -radius

면 평면에서 벋어난 것으로 판정하면 됨 .

Page 14: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

박스 교차 판정

박스 교차 판정Min , Max 값으로 표현된다 .

Page 15: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

박스 교차 판정

박스 교차 판정파이 -> 평면 0~5

n -> 평면의 법선벡터

B -> AABB 박스

Page 16: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

원통 교차 판정

원통반지름과 양 끝 점으로 표현된다 .

Page 17: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

원통 교차 판정

유효 반지름 구하기r’ = rsin@

Page 18: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

원통 교차 판정

유효 반지름 구하기

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 빠른 원통 절두체 교차 판정

원통 교차 판정

알고리즘

P1, P2 가 모두 평면의 음의 방향에 있으면 외부에 있는 것을 판정

P1, P2 가 모두 평면의 양의 방향에 있으면 다음 평면에서 판정

P1, P2 중 하나는 음의 방향 하나는 양의 방향에 있으면 두 점을 있는 선분과 평면의 교점을 구해 음의 방향의 끝점으로 대체 후 다음 평면에서 판정

양 끝점이 모두 음의 방향에 있지 않으면 교차 한다고 판단한다 .

Page 20: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

원통 교차 판정

선분과 평면의 교점 구하기

P = P1 + t(P2–P1) ( 0 < t < 1 )

t = d - P1 dot N / (P2-P1) dot N

Page 21: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

판정의 최적화

판정의 최적화

계산이 간편한 근평면 , 원평면을 먼저 계산 .

마지막 평면까지 판정이 왔다면 평면과 두 점사이의 교점을 구할 필요가 없고 한 점이라도 양의 방향에 있다면 더 이상 구할 필요가 없다 .

Page 22: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

Q&A

Page 23: [Gpg1권 박민수] 4.4 빠른 원통 절두체 교차 판정

마무리

The End