2012-01-30 3 views
1

저는 원점 (0 0 0)에 그림이 있습니다. 그래서 내 원근 카메라를 설정했습니다Camera.LookDirection이 위치한 좌표계는 무엇입니까?

<PerspectiveCamera Position="0 0 10" LookDirection="0 0 0" UpDirection="0 1 0" /> 

아무 것도 볼 수 없습니다. 그것이 어떻게 될 수 있는가? 나는 나의 입장에서 출발점까지 똑바로 보인다!

설명 할 수있는 것은 하나뿐입니다. LookDirection은 위치 좌표 시스템 (CS)에 있습니다. 즉, 위치는 LookDirection이있는 로컬 CS의 원점입니다. 따라서 위치는 전역 CS에 있고 LookDirection은 전역 CS에 없습니다. 그러나 MSDN의 설명을 따르지는 않습니다. 왜 그들은 그것에 대해 말하지 않습니까?

맞습니까?

답변

3

당신은 LookDirection="0 0 -1"

확인 documentationLookDirection="0 0 0"을 변경해야합니다, LookDirection는 벡터가 아닌 위치입니다.

+0

"가져 카메라 세계 좌표로보고되는 방향을 정의하는 값 Vector3D 설정". 따라서 LookDirection이 벡터 인 경우 원점은 카메라 위치이고 방향 점은 LookDirection 자체입니다. 나는이 장소에 맞습니까? 그렇지 않은 경우 LookDirection의 출처가 어디에 있습니까? – user808128

+0

또한 LookDirection이 .NET Framework의 관점에서 의미하는 바를 이해합니다. 그러나 그들의 논리는 단지 내 마음을 아프게합니다. 두 점을 가진 벡터를 이해하는 것이 더 쉽습니다. 그렇지 않으면 벡터의 원점이 어디에서 여러 위치에 있는지 분명하지 않습니다. 따라서 카메라 케이스의 경우 원산지가 직관적 인 위치라는 것을 알고 있지만 다른 경우는 어떨까요? – user808128

2

Z 축에서 10 단위이고 에서 원점을으로 보려고합니다.

당신 따라서 Z 축을 따라 뒤로을보고 싶지 : LookDirection="0 0 -1"

당 Benoit 씨의 대답은,이 필드는 벡터 아닌 위치입니다.

보다 일반적

LookDirection = (LookPosition - CameraPosition).normalize() 

[NB : 즉 의사가 아닌 실제 코드]의

+0

나는이 공식에 대해 C.Petzold의 책에서 읽었지 만,이 경우 LookDirection은 LookPosition의 원점을 가진 로컬 좌표계에서 보이는 점처럼 보입니다. 그렇지 않니? 그리고 모양 dorection은 점처럼 보입니다 - 그것은 벡터의 유일한 화살 끝입니까? – user808128

+0

@ user808128 예, 두 가지 질문에 대한 답변입니다. – Alnitak