В какой системе координат находится Camera.LookDirection? - PullRequest
1 голос
/ 30 января 2012

У меня есть фигура в исходной точке (0 0 0).Поэтому я настроил свою перспективную камеру как

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

Но там ничего не видно.Как это может быть?Я смотрю прямо на исходную точку из своей позиции!

Только одно может объяснить это: LookDirection находится в системе координат позиции (CS), то есть позиция является исходной точкой локальной CS вкоторый LookDirection существует.Таким образом, Position находится в глобальной CS, а LookDirection - в глобальной CS.Но я не встречаюсь с этим объяснением в MSDN.Почему они не говорят об этом?

Я прав или нет?

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Вы должны изменить LookDirection="0 0 0" на LookDirection="0 0 -1"

Проверьте документацию , LookDirection - это вектор, а не местоположение.

2 голосов
/ 30 января 2012

Вы на 10 единиц на оси Z, и вы хотите посмотреть на источник.

Поэтому вы хотите посмотреть назад вдоль оси Z: LookDirection="0 0 -1"

Согласно ответу Бенуа, это поле является вектором , а не позицией .

В целом,

LookDirection = ( LookPosition - CameraPosition ).normalize()

[NB: это псевдокод, а не реальный код]

...