Шаг камеры / рыскание к вектору направления

Я пытаюсь сделать луч из моей камеры. Я знаю координаты x, y и z камеры, а также ее наклон и рыскание. Мне нужно рассчитать вектор направления, чтобы я мог передать его в свой алгоритм трассировки лучей.

Вектор работы камеры равен (0, 1, 0). "Pitch", с точки зрения камеры, смотрит вверх и вниз.

(Я бы предпочел не использовать матрицы, но я буду, если придется)

 Tim13 мая 2012 г., 08:06
Почему возражение против матриц? Это кажется самым логичным способом сделать это для меня. Слишком запутанно, слишком дорого? Если вы не используете матрицы, вам просто придётся придумать это, используя много тригонометрии, что в итоге приведет к тому же.

Ответы на вопрос(1)

Решение Вопроса

Предполагая, что ваша система координат настроена так, что выполняются следующие условия:

(pitch, yaw)  -> (x, y, z)
(0,     0)    -> (1, 0, 0)
(pi/2,  0)    -> (0, 1, 0)
(0,    -pi/2) -> (0, 0, 1)

Это вычислит (x, y, z):

xzLen = cos(pitch)
x = xzLen * cos(yaw)
y = sin(pitch)
z = xzLen * sin(-yaw)
 08 июн. 2012 г., 19:18
Круто, это мне очень помогло: D
 10 мая 2016 г., 23:29
xzLen длина единичного вектора в нужном направлении после проецирования его на плоскость, содержащую оси x и z. Формула непосредственно следует из определений sin () и cos ().
 10 мая 2016 г., 14:18
@ Нил Форрестер, что доза xzlen означает? где я могу найти математическое вывод формулы & # xFF1F;

Ваш ответ на вопрос