Почему я не могу перевести свой самолет вниз? - PullRequest
2 голосов
/ 09 января 2012

Я подозреваю, что напортачу, но не могу понять, где я ошибся.

Вот моя сцена:

Ответы [ 2 ]

4 голосов
/ 09 января 2012

Вы на правильном пути, но ваша матрица транспонирована так, как она должна быть.Вот почему вы получаете сумасшедший перекос, когда вы пробовали разные значения. Смотрите это.

Поместите вектор перевода в последний ряд, а не в последний столбец, и вы будете в порядке.

modelMatrix.Value = new Matrix4(
        5, 0, 0, 0,
        0, 1, 0, 0,
        0, 0, 5, 0,
        0, 0, -3, 1);
4 голосов
/ 09 января 2012

Вы переключаете последнюю строку с последним столбцом.Матрица представления имеет вектор перевода по нижнему ряду, но вы создаете перевод вашей модели по последнему столбцу, который касается перекосов / некоторых других проницательных вещей, которые я мало изучал.

Просто переключитеРасположение перевода, и он будет работать.Если все ваши преобразования одинаковы, вы можете просто взять транспонирование матрицы, чтобы получить тот же результат.

...