2010-08-07 4 views
2

우리가 DirectX에서 세 가지 데 멘탈 오브젝트를 그릴 때 우리는 카메라를 정의해야합니다. 이제 우리는 'device1'이라는 이름의 Device 객체를가집니다. 내 질문은 입니다. device1.View = Matrix.Look ... (새 Vector3(), 새 Vector3(), 새 Vector3()); 인수 # 3이 위로 벡터입니다. 정확히 무엇을합니까?위 벡터는 DirectX에서 정확히 무엇을합니까?

답변

8

이름에서 알 수 있듯이 "up"방향을 정의합니다. 그것은 아주 중요한 것입니다. 카메라의 위치를 ​​알아야하며 방향이 어느 방향인지 알아야하지만 방향이 어떻게 바뀌 었는지 알아야합니다. 즉, 상하 좌우로 무엇이 감지되는지 알아야합니다.

현실 세계에서 시야의 "상향"벡터는 중력의 영역에 의해 암시됩니다 (즉, 지구에 의해 가해진 중력 벡터의 반전 (위로, 아래로는 아닙니다!)).

2

카메라 매트릭스에서 좌표 프레임을 설명하기 위해 "직교 정규 (orthonormal)"기본 매트릭스를 형성해야합니다.

3D 좌표계를 생각하면 3 축이 있습니다. X 축 (또는 측면/측면 벡터), Y 축 (위쪽 벡터) 및 Z 축 (방향 벡터)입니다.

위쪽 벡터는 좌표 프레임을 정의하는 데 중요합니다. 다음

행 메이저 기저 행렬이 정의된다

xx, xy, xz, 0 
yx, yy, yz, 0 
zx, zy, zz, 0 
px, py, pz, 1 

XX, XY가, XZ가 Y 축, ZX YZ, YY, YX, X 축이 형성하는 3 벡터이고, zy, zz z 축 및 px, py, pz는 위치 벡터를 정의합니다.

위쪽 벡터를 아래쪽으로 향하면 생각하면 거꾸로 된 모든 것을 볼 수 있습니다. 맞습니까? 또한 위쪽 벡터를 아래쪽으로 회전시키지 않았을 때 옆쪽 벡터가 잘못된 방향을 가리키고 있으므로 X 축에 대칭되는 것처럼 보이고 거꾸로 된 것을 볼 수 있습니다.

관련 문제