ПрограммированиеФорумГрафика

Помогите разобраться с матрицами.

Страницы: 1 2 Следующая »
#0
1:40, 4 авг 2024

Хай!

У меня каждый геометрический примитив имеет матрицу трансформации.
Для удобства пока что я храню две матрицы:
в локальных координатах, и в глобальных.
Также каждый объект имеет (или может иметь) родительский объект.
При любом обновлении координат текущего объекта, локальная матрица объекта текущего перемножается на глобальную матрицу родительского объекта, и получается т.о. глобальная матрица текущего объекта.

Вопрос: мне необходимо реализовать две функции:
трансформация локальных координат в глобальные (по сути это и есть вышеописанное перемножение матриц),
и трансформацию из глобальных координат в локальные.

Вот именно со вторым у меня случился затык.
Посоветуйте направление =)

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

Screenshot_8 | Помогите разобраться с матрицами.
#1
5:29, 4 авг 2024

barbanel
> и трансформацию из глобальных координат в локальные.
Это умножение координат на обратную матрицу

#2
7:29, 5 авг 2024

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

#3
8:48, 5 авг 2024

MikeNew
Не считать каждый раз обратную ?

#4
9:14, 5 авг 2024

Нужно умножить на обратную матрицу.
Конкретно для 3Д преобразований можно считать обратную матрицу более быстрым способом.

#5
9:58, 5 авг 2024

@!!ex
Ортонормирваность ?

#6
10:58, 5 авг 2024

Поворотная часть транспонированием, трансляционная часть - инверсией знака.

#7
14:25, 5 авг 2024

Поворотная часть транспонированием

Это как ? Обычно поворотная часть это 3х3 float.
Формулой можно показать ?

трансляционная часть

Это последние нижние  4 float матрицы или нет ?

@!!ex

Конкретно для 3Д преобразований можно считать обратную матрицу более быстрым способом.

Быстро это инверсия поворотной части матрицы ? Которая 3х3 float.
А не всю матрицу 4х4

#8
18:33, 5 авг 2024

ronniko
>Формулой можно показать ?

| e11 e12 e13 |    | e11 e21 e31 |
| e21 e22 e23 | => | e12 e22 e32 |
| e31 e32 e33 |    | e13 e23 e33 |
#9
18:40, 5 авг 2024

nes
Это ты сделал так транспонирование ?

#10
18:41, 5 авг 2024

ronniko
Ага.

#11
18:42, 5 авг 2024

Выглядит просто.

Ага.

А ты всё правильно сделал ?
Напоминает directx matrix convert to opengl matrix.

#12
18:58, 5 авг 2024

ronniko
Транспонирование матрицы, это когда строки меняются местами со столбцами, сам посмотри.

#13
19:54, 5 авг 2024

Да нашел. Так и есть.

#14
7:38, 6 авг 2024

innuendo
> Не считать каждый раз обратную ?
Действительно. Ясно-понятно.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.