Вероятно, он пытается воссоздать полную матрицу камеры, начиная с перекрестного произведения между LookDirection и UpDirection. Результат перекрестного произведения между параллельными векторами равен нулю, поэтому в итоге вы создаете совершенно недопустимую матрицу представления.
Так как вы также устанавливаете UpDirection, почему бы не установить его в направлении, в котором верхняя часть экрана обращена? Это то, что вы должны делать, в любом случае. Представьте, что вы смотрите на свои туфли, в каком направлении указывает ваша голова?
LookDirection и UpDirection должны быть как можно ближе друг к другу под прямым углом, насколько это возможно. Предположительно, программное обеспечение «исправит» вещи, если они не точные, но если вы смотрите «в значительной степени прямо вниз», вероятно, будет хорошей идеей указать, куда вы хотите направить верхнюю часть камеры. Конечно, это только реальная проблема, когда вы смотрите прямо вниз, поскольку любой угол между этими векторами можно использовать для определения правильного правильного вектора угла из LookDirection. Только когда они на самом деле параллельны, становится невозможно узнать, какой должна быть ориентация камеры.
Редактировать: Краткий ответ: установите UpDirection 0,1,0