Какое направление вперед, когда вращение (0, 0, 0)?

Я представляю вращение моих актеров (или игровых объектов) с углами эйлеров (по одному поплавка для каждой оси). И я всегда считал вектор (1,0,0) (x, y, z) направлением актера, если все углы равны 0. Поэтому, если у актера нет вращения и он идет вперед, он будет идти по положительной оси х.

Однако сегодня я использовал камеру, которая должна отображать представление с точки зрения актеров. Если я использую вращение актера, то есть (0, 0, 0), камера будет смотреть вниз по направлению -z (прямо в монитор), но актер фактически смотрит вправо.

Если вместо этого -z будет считаться направлением, когда вращение (0, 0, 0), то камера будет обращена в правильном направлении. Как это обычно обрабатывается? Или я думаю об этом неправильно?

Чтобы прояснить ситуацию, я использую правую систему координат с y в качестве оси вверх.

5 голосов | спросил lawls 22 MarpmSun, 22 Mar 2015 22:48:03 +03002015-03-22T22:48:03+03:0010 2015, 22:48:03

1 ответ


5

Это полностью вопрос конвенции. (Так как вы не указали какие-либо конкретные инструменты.)

Но! Если вы моделируете в той же ориентации по умолчанию, что и ваш экран, который, как вы говорите, правша, X-right, Y-up и, следовательно, Z-to-you, тогда было бы естественно моделировать ваших персонажей, стоящих перед вами, где вперед - Z-положительный.

Что также подразумевает, что ваша камера по умолчанию смотрит, как вы упоминаете, на Z-негатив на экран. Таким образом, ваш персонаж с идентификационной матрицей окажется центрированным, глядя на вас зрителем.

(Это соглашение, которое я использую, кстати.)

ответил david van brink 23 MaramMon, 23 Mar 2015 05:23:47 +03002015-03-23T05:23:47+03:0005 2015, 05:23:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132