문제

저는 대규모 측면 프로젝트를 위해 Raytracer를 작업하고 있으며, 목표는 CPU 시간에 대해 걱정하지 않고 현실적인 렌더링을 생산하는 것입니다. 기본적으로 사전 렌더링이므로 속도보다 정확하게 갈 수 있습니다.

나는 사물의 조명 측면에서 진행되는 더 진보 된 수학 중 일부를 둘러싼 문제가 있습니다. 기본적으로, 나는 내 빛에 대한 요점이 있습니다. 거리 낙하가 없다고 가정하면 내가 찾은 다각형의 점을 사용하고 그 지점의 정상을 조명의 발생률과 비교하여 조명 값을 파악해야합니다. 비행기의 지점, 그 평면의 정상 및 포인트 라이트가 주어지면 어떻게 그 각도를 알아 내는가?

내가 묻는 이유는 발병 각도를 찾는 것에 대한 참조를 찾을 수 없기 때문입니다. 나는 당신이 그것을 얻은 후에해야 할 일을 자세히 설명하는 많은 참고 문헌을 찾을 수 있지만, 처음에 그것을 얻는 방법을 알려주는 것은 없습니다. 나는 그것이 간단하다고 생각하지만, 나는 그것을 논리 할 수는 없습니다.

감사

도움이 되었습니까?

해결책

그만큼 도트 제품 표면 정상 벡터와 입사 광 벡터의 벡터를 정규화 한 경우 발생률의 코사인을 제공합니다.

다른 팁

참고 : 지금 앉아있는 곳에서 사진을 업로드 할 수 없습니다. 그래도 당신을 위해 그것을 말로 배치하려고 노력할 것입니다.

이 과정을 상상할 수있는 방법은 다음과 같습니다.

정의하다 대체 텍스트 http://www.yourequations.com/eq.latex?%5CHAT%7BN%7D 정규화 된 정상 (평면 다각형에서 나오는 수직 벡터는 단위 길이이며 수학을 더 쉽게 만듭니다).

정의하다 Alt Text http://www.yourequations.com/eq.latex?p_0 안구 지점으로.

정의하다 대체 텍스트 http://www.yourequations.com/eq.latex?p_1 다각형의 "안구 광선"의 충격 지점으로.

정의하다 대체 텍스트 http://www.yourequations.com/eq.latex?%5CHAT%7BV%7D 정규화 된 벡터가 가리키는대로 대체 텍스트 http://www.yourequations.com/eq.latex?p_1 돌아가다 Alt Text http://www.yourequations.com/eq.latex?p_0. 당신은 이것을 그렇게 쓸 수 있습니다 :

Alt Text http://www.yourequations.com/eq.latex?%5CHAT%7BV%7D%20=%20%20%5CFRAC%7B%5COVERRIGHTARROW%7B (P_0%20-%20P_1)%7d%7d%7B | | P_0%20-%20p_1 ||%7d

그래서 당신은 대체 텍스트 http://www.yourequations.com/eq.latex?p_1 에게 Alt Text http://www.yourequations.com/eq.latex?p_0 그런 다음 해당 벡터를 자체 길이로 나누고 길이 1의 벡터를 제공합니다. 대체 텍스트 http://www.yourequations.com/eq.latex?p_1 에게 Alt Text http://www.yourequations.com/eq.latex?p_0

우리 가이 모든 문제에 갔던 이유는 우리가 정말로 각도를 좋아하기 때문입니다. Alt Text http://www.yourequations.com/eq.latex?%5Ctheta 이것은 정상 사이의 각도입니다 대체 텍스트 http://www.yourequations.com/eq.latex?%5CHAT%7BN%7D 그리고 그 벡터 대체 텍스트 http://www.yourequations.com/eq.latex?%5CHAT%7BV%7D 당신이 방금 만든 것입니다. 세타의 또 다른 단어는입니다 발병 각도.

이 입사각을 계산하는 쉬운 방법은 사용하는 것입니다. 도트 제품. 위에서 정의 된 용어를 사용하면 각 단위 길이 벡터 각각의 x, y 및 z 구성 요소를 가져 와서 함께 곱한 다음 점점을 추가하여 도트 제품을 얻습니다.

Alt Text http://www.yourequations.com/eq.latex?%5CHAT%7BN%7D%20%5CCDOT%20%20%5CHAT%7BV%7D%20%20%20%5CCOS%7B%5CTHETA%7D%20= %20n_x%20v_x%20+%20n_y%20%20v_y%20+%20n_z%20%20v_z

계산합니다 Alt Text http://www.yourequations.com/eq.latex?%5Ctheta, 따라서 DOT 제품의 역 코사인을 간단하게 사용합니다.

대체 텍스트 http://www.yourequations.com/eq.latex?%5CTHETA%20%20%20%5CARCCOS%28%5CHAT%7BN%7D%20%5CDOT%20%5CHAT%7BV%7D%29

편집 : 추가 할 위의 내용을 수정했습니다 yourequations.com 서식.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top