구 교차점 폐색 (하이브리드 레이트 레이싱 용)


9

하이브리드 레이트 레이싱에 대해 생각하면 다음과 같은 질문이 있습니다.

두 개의 솔리드 구 과 가 있다고 가정합니다 . 우리는 그들의 중심과 반지름을 알고 있으며 공간에서 겹치는 부분이 있음을 알고 있습니다.s1s2

우리는 일반적인 3D 그래픽 설정을 가지고 : 눈 원점 가정, 우리는에서 뷰 평면에 구체를 투사하는 긍정적를위한 . 구는 뷰 평면을 넘어서 교차하지 않습니다.z=ff

를 두 구면의 표면에있는 점인 공간의 원 이라고합시다 .c

뷰 평면에 투영 할 때 중 하나 가 보이는지 계산하고 싶습니다 . 또는 가 완전히 될 수 있습니다 .cs1s2

이것에 대한 아이디어가 있습니까?


c가 투영 된 픽셀의 합집합 인 경우, s1 또는 s2가 다른 구를 완전히 방해 할 때 c가 비게되는 것은 아닙니다. 명확히하십시오.
v.oddou

답변:


7

내가 놓친 부분이 없다면 2D 공간의 문제로 줄일 수 있습니다. 구의 중심점과 카메라 원점으로 정의 된 평면을 보면 장면은 다음과 같습니다.

교차로가 보이는 장면

구는 중심점이있는 원이됩니다 12교차점 원은 이제 2 점에 가까워지고 1 점만 가까워집니다. 흥미 롭습니다. 카메라 / 눈이 임의로 포인트로 설정됩니다이자형.

구의 한 점이 보이는지 계산하기 쉬운 지 여부 : 단순히 점의 각도를 확인하십시오 중에서 이자형1 각기 이자형290도 1 보다 크거나 같다 .

만약 교차 원의 일부 (예 : 적어도 그 점)가 보입니다. 그렇지 않으면 전체 교차 원이 구 중 하나, 즉 90도 미만의 각도를 만드는 구에 의해 가려 져야합니다.

다음과 같은 경우 모습입니다. 에서 보이지 않습니다 이자형:

여기에 이미지 설명을 입력하십시오

원이 그 점을 어떻게 가리는지 명확하게 볼 수 있습니다 2 그리고 그 사이의 각도 이자형2 90도 미만입니다.


1 정확히 90 도의 각도를 갖는 것은이자형 각 원 / 구를 터치합니다 접선으로.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.