Почему в LookAt OpenGL, если наше лицо обращено почти к небу, мы все еще можем видеть вещи прямо перед нами?

Возможный дубликат:
Что такое вектор UP в функции LookAt OpenGL?

Это связано с тем, что именно является вектором UP в функции LookAt OpenGL?

Если звонок:

      gluLookAt(512, 384, 2000,
                512, 384, 0,
                0.0f, 1.0f, 0.0f);

Если я сижу на стуле и смотрю прямо перед собой, держу iPad прямо перед моими глазами, то мой макушка головы направлена ​​вверх по небу. Следовательно (0, 1, 0) для вектора UP, как в 3-м ряду. Как насчет того, чтобы изменить его на (0, 0.00001, 1)? Это означает, что я почти лежу, теперь мое лицо и глаза смотрят в небо. Так почему же результат точно такой же, как когда я использую (0, 1, 0)?

2 ответа

Что вы могли ожидать?

Вы передаете 3 набора значений: положение камеры, положение для камеры и направление вверх. По вашей аналогии, если вы смотрите на небо, вы не смотрите на свой iPad. Поэтому ваша позиция взгляда должна была измениться вместе с вашим направлением вверх. И если вы не изменили свою позицию взгляда, то что вы ожидаете, когда вы измените направление вверх?

Направление вверх влияет только там, где вверх относительно того, куда вы смотрите. Если вы хотите изменить то, на что вы смотрите, вы должны изменить точку обзора. Вот почему это там.

После нескольких проб и ошибок, когда я только начал изучать OpenGL в течение одного дня, вектор Up должен иметь некоторые компоненты в плоскости, которая "нормальна" (или перпендикулярна) к камере для целевого вектора.

Другими словами, в примере это от (512, 384, 2000) до (512, 384, 0), поэтому вектор находится только в направлении Z. Вектор Up должен иметь некоторые компоненты на плоскости XY (плоскость XY - это та, которая перпендикулярна вектору, имеющему только направление Z).

Если нет компонентов x и y, то есть если они оба равны 0, то на моем iPad 2 изображение вообще не отображается. Таким образом, вектор Up имеет дело с вращением в плоскости XY в этом случае, а не с направлением Z вообще.

Другие вопросы по тегам