Местоположение цели LookAt не имеет значения, если это z = 0 или z = 1000 или -1000?
Я пробую LookAt в OpenGL ES,
gluLookAt(512, 384, 2000,
512, 384, 0,
0.0f, 1.0f, 0.0f);
Второй ряд - это позиция цели... так что мне интересно, поменяю ли я z
от 0
в 1000
или же -1000
не должно ли то, что видно по-другому? Они оказываются все одинаковыми, почему это так?
2 ответа
От спецификации OpenGL для gluLookAt, это заявляет входные данные как:
gluLookAt(GLdouble eyeX , GLdouble eyeY , GLdouble eyeZ ,
GLdouble centerX , GLdouble centerY , GLdouble centerZ ,
GLdouble upX , GLdouble upY , GLdouble upZ );
Ваши текущие значения только перемещают center
вектор вдоль z
самолет, так что вы на самом деле смотрите вниз с вашего eye
вектор. В зависимости от того, что вы делаете, вы можете вообще не увидеть никаких изменений (куб будет выглядеть одинаково как сверху, так и снизу).
Попробуйте изменить свой x
а также y
вместо этого, чтобы переместить камеру так, чтобы она не была перпендикулярна вектору, на который вы пытаетесь смотреть.
Поскольку координаты x и y одинаковы для камеры и цели, изменение координаты z вообще не влияет на направление, в котором находится вид, и для этого имеет значение только направление.