Войти
ПрограммированиеФорумОбщее

GLM Row Major (4 стр)

Страницы: 1 2 3 4 5 Следующая »
#45
10:57, 25 янв 2018

Wraith
> Ну так просто поменяй местами аргументы в operator*() для матриц и векторов...
То, что руками можно сделать так, чтобы работало по другому - это очевидно. Хотелось легального способа на уровне библиотеки. Ну типа дефайном переключить или еще что-то в духе того.

#46
11:27, 25 янв 2018

Wraith
> "Садись, двойка."
Напомню, вопрос был:
> она для row-major, или для column-major матриц?
Так какой там ответ правильный? Из предложенных двух вариантов, разумеется?

> Встречный вопрос: как правильно написать трансформацию вектора матрицей
> переноса?
> vec * translate(position) или translate(position) * vec?
> Или, например, в чем разница между translate(position) * scale(size) и
> scale(size) * translate(position)?

#47
11:41, 25 янв 2018

> Встречный вопрос: как правильно написать трансформацию вектора матрицей
> переноса?
> vec * translate(position) или translate(position) * vec?
> Или, например, в чем разница между translate(position) * scale(size) и
> scale(size) * translate(position)?
Никакой разницы нет, от перемены позиций аргументов в функциях С++ результат не меняется.

#48
11:54, 25 янв 2018

Wraith
> Никакой разницы нет, от перемены позиций аргументов в функциях С++ результат не
> меняется.
В случае, если библиотека рассчитана на работу с вектор-строками и row-major матрицами,
translate(position) * scale(size) даст в результате матрицу, производящую масштаб в size раз и перенос на position*size юнитов,
а scale(size) * translate(position) - матрицу, производящую масштаб в size раз и перенос на position юнитов.
А если библиотека рассчитана на работу с вектор-столбцами и column-major матрицами, результат будет противоположный.

> Ну так просто поменяй местами аргументы в operator*() для матриц и векторов...
Чет не звучит это как рабочий вариант. Нужно будет еще поменять все места, где этот оператор вызывается внутри библиотеки. Ну и в целом мне кажется, что куча мест развалится.

#49
20:39, 25 янв 2018

Wraith
> Никакой разницы нет, от перемены позиций аргументов в функциях С++ результат не
> меняется.
Ну да, канешн. Значит в математике умножение матриц не коммутативно, а вот С++ такой умный, что превращает не коммутативную операцию в коммутативную. Лол.

#50
8:39, 26 янв 2018

поработал тут я с вашей GLM ... хочется плеваться

#51
9:24, 26 янв 2018

innuendo
> поработал тут я с вашей GLM ... хочется плеваться
Сказать что glm говно - ума много не надо. Лучше бы хорошую альтернативу предложил.

#52
9:47, 26 янв 2018

MrShoor
> Лучше бы хорошую альтернативу предложил.

своя либа ?

#53
10:00, 26 янв 2018

innuendo
> своя либа ?
Вот и используй после этого этот ваш С++. Даже мат либы для графики нормальной нет.

#54
10:04, 26 янв 2018

MrShoor
можно взять из nvsdk

MrShoor
> Вот и используй после этого этот ваш С++. Даже мат либы для графики нормальной
> нет.

в геймдеве много своё пишется
к glm можно привыкнуть при желании

#55
12:43, 26 янв 2018

MrShoor
> Ну да, канешн. Значит в математике умножение матриц не коммутативно, а вот С++
> такой умный, что превращает не коммутативную операцию в коммутативную. Лол.
Да ты чо. Если ты напишешь функцию mat4x4 mul( mat4x4 A, mat4x4 B) { ... }, а затем изменишь заголовок на mat4x4 mul( mat4x4 B, mat4x4 A) с тем же самым телом, тебе будет полная коммутативность, лол.

#56
12:52, 26 янв 2018

Wraith
> Да ты чо. Если ты напишешь функцию mat4x4 mul( mat4x4 A, mat4x4 B) { ... }, а
> затем изменишь заголовок на mat4x4 mul( mat4x4 B, mat4x4 A) с тем же самым
> телом, тебе будет полная коммутативность, лол.
И весь код сломается, ага. Кроме функции умножения матриц.

#57
12:56, 26 янв 2018

Wraith
> Да ты чо. Если ты напишешь функцию mat4x4 mul( mat4x4 A, mat4x4 B) { ... }, а
> затем изменишь заголовок на mat4x4 mul( mat4x4 B, mat4x4 A) с тем же самым
> телом, тебе будет полная коммутативность, лол.
а потом сходи поправь для
mat4x3, а потом поправь для mat4x2, а потом для векторов, а потом можешь за матрицы mat3x... приниматься. И про кватернионы не забудь. А потом еще что-нибудь отвалилось пайдитожепачини.
Спасибо, но я такие решения итак знаю, я об этом уже говорил раньше.

#58
18:05, 26 янв 2018

MrShoor
> Лучше бы хорошую альтернативу предложил.
Как насчёт моей? https://github.com/gammaker/Intra/tree/master/Intra/Math

#59
20:24, 26 янв 2018

gammaker
> Как насчёт моей?
Хммм. Ок, гляну, спс. Сходу вижу, что не хватает матрицы 2x2.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумОбщее

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