Думайте о «АТ» как о веревке, прикрепленной к вашему носу, и о «ВВЕРХ» как о веревке, прикрепленной к верхней части вашей головы.
Без веревки, прикрепленной к верхней части головы, вы можете наклонить голову по часовой стрелке / против часовой стрелки и все еще смотреть в положение «AT». Но поскольку вы можете наклонить голову, компьютер не может быть уверен в том, должен ли что-то, звучащий справа от канонического звука, звучать в вашем правом ухе (верхняя часть головы обращена вверх) или в левом ухе (верхняя часть ваша голова обращена "вниз", потому что вы вверх ногами). Векторы «AT» и «UP» закрепляют «голову» слушателя так, что нет никакой двусмысленности относительно того, в какую сторону он направлен и в какую сторону он ориентирован.
На самом деле нужно задать 3 вектора: Position, "AT" и "UP".
Положение 0,0,0 означает, что голова находится в центре вселенной. «AT» 0,0, -1 означает, что голова смотрит в экран, а «UP» обычно составляет 0,1,0, так что верхняя часть «головы» направлена вверх. При такой настройке все, что пользователь видит в левой части экрана, будет звучать в его левом ухе. Единственный раз, когда вы выбираете что-то другое, это игра в стиле от первого лица, в которой игрок перемещается в виртуальном трехмерном мире. На самом деле векторы не должны быть нормализованы, так что вы можете использовать 0,42,0 для «UP», и это сделало бы то же самое, что и 0,1,0.
Если вы измените «AT» и «UP» по сравнению с их каноническими значениями, векторы ДОЛЖНЫ быть перпендикулярными.