다항식 솔버를 언급하면 표면의 암시 적 대수 설명에 기초하는 것처럼 들립니다. x,y,z
에
((1-u^2)/(1+u^2), 2*u/(1+u^2), v)
그런 다음 다항식의 집합으로이 오길 : 그래서 상황에서, 당신은이 tangent half-angle substitution 사용하여 삼각 함수의 제거 얻을 것
는
(1-u^2)/(1+u^2) - x = 0
2*u/(1+u^2) - y = 0
v - z = 0
당신은 u
을 제거 할 수 및 이들 방정식으로부터의 v
resultants을 사용하십시오. 즉 당신의 실린더 이후
당신은 놀랄 일이 아니 온다
x^2 + y^2 - 1 == 0
로 끝날 것입니다. 그러나 위의 접근법은 다른 매개 변수화 된 표면에도 적용됩니다. 그러면 여러분은 여러분의 광선을 취할 수 있고, 카메라 렌즈가 원점이라고 가정하면, 그 광선에 점을 λd로 쓰십시오. 여기서 d는 광선의 방향입니다. 방정식에 그 점을 연결하고, λ를 풀고, 가장 작은 양의 해를 구하자. 광선이 서페이스와 교차하는 지점을 얻었습니다. 또한, 그 지점에서 암시 적 방정식의 그래디언트를 계산하면 표면의 법선도 얻을 수 있습니다.
실제로이 접근법이 실제로 얼마나 많이 사용되고 있는지 알 수 없습니다. 대부분의 레이 트레이서는 가장 단순한 기하학적 기본 요소를 제외하고 대부분의 작업에서 메시 기반이지만 너무 오래된 정보 일 수 있습니다. CPU가 많이 드는 메쉬 생성을 피하고 실제 표면의 GPU 중량이 높은 고 품질 계산으로 대체하려는 경우 확실히 가치있는 방법으로 들릴 것입니다.
Surfer 및 그 자손과 같은 도구가 있으며 암시 적 방정식으로 설명되는 시각화 대수 표면을 유일한 도구로 사용합니다. 그러한 표면에서 튀어 나와있는 매우 얇은 스파이크와 같은 특이점을 잘 다루기 위해 많은 것들을 좋아합니다. 내가 직접이 도구를 사용했습니다. 설명하기 위해 this answer. 서퍼는 복잡한 반사 및 조명 모델을 가지고 있지 않으므로 레이 캐스팅 만 수행합니다.
출처
2015-01-11 20:46:31
MvG