Что Up Vector делает в DirectX? - PullRequest
       6

Что Up Vector делает в DirectX?

2 голосов
/ 07 августа 2010

Как вы знаете, когда мы хотим нарисовать трехмерный объект в DirectX, мы должны определить камера. Теперь у нас есть объект Device, который называется «device1». Это мой вопрос: device1.View = Matrix.Look ... (New Vector3 (), New Vector3 (), New Vector3 ()); Аргумент № 3 - Up Vector. Что именно это делает?

Ответы [ 2 ]

8 голосов
/ 07 августа 2010

Как следует из названия, оно определяет направление «вверх».Это довольно важная вещь.Вам нужно знать положение камеры, вам нужно знать, в каком направлении она направлена, но вам также нужно знать, как она повернута, то есть что будет восприниматься как вверх и вниз, влево и вправо.

ВВ нашем реальном мире поле «вверх» нашего поля зрения (обычно) подразумевается полем гравитации, т.е. это обратный (вверх, а не вниз!) вектор гравитации, создаваемый Землей.

2 голосов
/ 13 августа 2010

В матрице камеры вам необходимо сформировать «ортонормированную» базовую матрицу для описания координатной рамки.

Если вы думаете о любой трехмерной координатной рамке, у вас есть 3 оси.Ось X (или боковой / боковой вектор), ось Y (вектор вверх) и ось Z (вектор направления).

Вектор вверх очень важен для определения этой координатыРамка.

Основная матрица строки определяется следующим образом:

xx, xy, xz, 0
yx, yy, yz, 0
zx, zy, zz, 0
px, py, pz, 1

xx, xy, xz - это 3-вектор, определяющий ось x, yx, yy, yz y-axis, zx, zy, zz, ось z, а px, py, pz определяют вектор положения.

Также, если вы подумаете об этом, если направите вектор вверх вниз, то вы ожидаете увидеть все вверхвниз .. верно?Кроме того, поскольку вы не повернули вектор вверх в нижнее положение, вы также заметите, что боковой вектор направлен не в ту сторону, поэтому вы увидите что-то, что выглядит зеркально на оси X, а также вверх ногами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...