Size: a a a

Programming Offtop

2021 February 26

AM

Andrew Mikhaylov in Programming Offtop
Тем более там рядом есть конструкторы, которые и набор строк принимают, и набор столбец, создавать её можно как угодно, руками каждое значение указывать необязательно
источник

YN

Yaroslav Nikitenko in Programming Offtop
Andrew Mikhaylov
С другой стороны, что так, что так заполнять значениями, если не перемножением матриц нужное получать)
если дефолтный конструктор создаёт не валидный объект, где-то будет заложена огромная бомба))) Особенно если программеры и заказчики глубоко не понимают деталей математики, то задумаются надолго)
источник

YN

Yaroslav Nikitenko in Programming Offtop
Тогда только если запретить дефолтный конструктор.
Но при создании пользователем надо будет всё равно делать проверку, что матрица обратимая, иначе тоже проблемы могут быть. Это будет медленнее, но зато надёжно!
источник

YN

Yaroslav Nikitenko in Programming Offtop
Обратимость легко вычисляется по детерминанту, простое выражение для 3хмерной матрицы, если он не равен 0, то всё хорошо. Так что это почти одно вычисление, не так много)
источник

YN

Yaroslav Nikitenko in Programming Offtop
Andrew Mikhaylov
Тем более там рядом есть конструкторы, которые и набор строк принимают, и набор столбец, создавать её можно как угодно, руками каждое значение указывать необязательно
мне кажется, что это не очень хорошие конструкторы.
По столбцам и строкам - почти одно и то же, и получается дублирующийся интерфейс?..
Если матрицу создаёт человек, то аффинное преобразование выражается через сдвиг и поворот вокруг оси (ну и растяжения, если сложное преобразование). Человеку будет проще понять суть. С естественными координатами не нужно будет проверять обратимость.
Если 4я координата почти всегда 0, то её тоже не надо будет вводить.
Но для общего случая, наверное, и правда строки (либо?) столбцы трёхмерной обратимой матрицы.
источник

AM

Andrew Mikhaylov in Programming Offtop
Yaroslav Nikitenko
Тогда только если запретить дефолтный конструктор.
Но при создании пользователем надо будет всё равно делать проверку, что матрица обратимая, иначе тоже проблемы могут быть. Это будет медленнее, но зато надёжно!
Я думаю, в коде, отвечающем за графику, скорость важнее корректности, так что это не аргумент :)
источник

YN

Yaroslav Nikitenko in Programming Offtop
Andrew Mikhaylov
Я думаю, в коде, отвечающем за графику, скорость важнее корректности, так что это не аргумент :)
а если кто-то даст нулевую матрицу (выше предлагали), то всё в точку схлопнется?)
источник

AM

Andrew Mikhaylov in Programming Offtop
Yaroslav Nikitenko
а если кто-то даст нулевую матрицу (выше предлагали), то всё в точку схлопнется?)
Да где-то насчитается себе NaN, и ладненько. Скорее всего это уже забота видеоадаптера. Который может просто опустить невалидные данные где-то в конце пайплайна.
источник

AM

Andrew Mikhaylov in Programming Offtop
Yaroslav Nikitenko
мне кажется, что это не очень хорошие конструкторы.
По столбцам и строкам - почти одно и то же, и получается дублирующийся интерфейс?..
Если матрицу создаёт человек, то аффинное преобразование выражается через сдвиг и поворот вокруг оси (ну и растяжения, если сложное преобразование). Человеку будет проще понять суть. С естественными координатами не нужно будет проверять обратимость.
Если 4я координата почти всегда 0, то её тоже не надо будет вводить.
Но для общего случая, наверное, и правда строки (либо?) столбцы трёхмерной обратимой матрицы.
Я предположил бы, что по строкам там есть, потому что это более привычное простым смертным представление, по столбцам же -- потому что это внутреннее представление на платформе, и этот конструктор работает быстрее. Но это хиленькое оправдание, конечно.
источник

YN

Yaroslav Nikitenko in Programming Offtop
Andrew Mikhaylov
Да где-то насчитается себе NaN, и ладненько. Скорее всего это уже забота видеоадаптера. Который может просто опустить невалидные данные где-то в конце пайплайна.
есть математический факт, что множество вырожденных матриц имеет меру ноль. То есть произвольная матрица с нулевой вероятностью необратима (детерминант 0 - в очень редком случае из всех чисел). В программировании, правда, нули гораздо более распространены)
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Ну вот я почему-то решил, что я получу identity-матрицу. Но да, нули. Теперь пытаюсь понять, я всё-таки идиот или нет.
Ага, именно поэтому в kmath разделены ндструктуры и матрицы.
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
Ага, именно поэтому в kmath разделены ндструктуры и матрицы.
Ну SceneKit, к сожалению, не вы проектировали, а какие-то дупели из эпол))))
источник

YN

Yaroslav Nikitenko in Programming Offtop
Andrew Mikhaylov
Да где-то насчитается себе NaN, и ладненько. Скорее всего это уже забота видеоадаптера. Который может просто опустить невалидные данные где-то в конце пайплайна.
а пайплайн этот работает и считается на видеокарте? На каком языке пишется? Для одного типа карт, или достаточно универсально по производителю?
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Ну SceneKit, к сожалению, не вы проектировали, а какие-то дупели из эпол))))
Я к тому, что там как с Number. Нет хорошего универсального решения. Все больше убеждаюсь, что пошли мы правильной дорогой.
источник

AM

Andrew Mikhaylov in Programming Offtop
Yaroslav Nikitenko
а пайплайн этот работает и считается на видеокарте? На каком языке пишется? Для одного типа карт, или достаточно универсально по производителю?
Речь о SceneKit, фреймворке для 3д-графики на macOS / iOS (в моём случае iOS). Там на верхнем уровне код на Swift / Objective C, а роботает оно поверх Metal или OpenGL.
источник

AM

Andrew Mikhaylov in Programming Offtop
Где Metal — это в некоторой степени аналог Vulkan из эппловой экосистемы.
источник

AM

Andrew Mikhaylov in Programming Offtop
Yaroslav Nikitenko
а пайплайн этот работает и считается на видеокарте? На каком языке пишется? Для одного типа карт, или достаточно универсально по производителю?
То есть те матрицы, с которыми играюсь я, считаются на CPU, а вот те расчёты, которые нужны для того, чтобы сценку отрисовать — это удел пайплайна рендеринга на графическом ускорителе, конечно.
источник

I

Ilmir in Programming Offtop
@nepherpitou Что за порнуху ты мне посоветовал?
источник

AM

Andrew Mikhaylov in Programming Offtop
Ilmir
@nepherpitou Что за порнуху ты мне посоветовал?
Фан-сервис, сэр!
источник

U

Unat in Programming Offtop
Ilmir
@nepherpitou Что за порнуху ты мне посоветовал?
А ты ещё не прошёл квесты что-ли?
источник