Можно ли использовать определитель матрицы 4x4 в компьютерной графике?

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

Каковы некоторые примеры использования определителя в программировании 3D-графики?


person karamazovbros    schedule 13.08.2018    source источник
comment
Инверсия матрицы неявно требует вычисления определителя. Это может понадобиться для вычислений фрагментного шейдера.   -  person meowgoesthedog    schedule 14.08.2018
comment
Да. Библиотеки также часто предоставляют обратные функции, поэтому я до сих пор не уверен, зачем использовать детерминантную функцию саму по себе.   -  person karamazovbros    schedule 14.08.2018
comment
Другое возможное использование - для неортогональных систем координат, таких как изометрические сетки; установка каждой строки матрицы 3x3 в базисный вектор и вычисление ее определителя дает тройное произведение a . (b x c), которое является полезной величиной для разрешения неортогональности.   -  person meowgoesthedog    schedule 14.08.2018


Ответы (3)


С верхней части моей головы...

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

Если определитель отрицателен, то объекты, преобразованные матрицей, будут перевернуты как в зеркале (леворукость становится праворукостью и наоборот).

Для матриц 3x3 объем объекта будет умножен на определитель при его преобразовании матрицей. Знание этого может быть полезно для определения, например, уровня детализации/количества полигонов для использования при рендеринге объекта.

person Matt Timmermans    schedule 14.08.2018
comment
И как практическое следствие, если матрицу нельзя инвертировать, преобразование мировых координат в экран не работает, что очень важно в 3D-играх. - person Mike 'Pomax' Kamermans; 14.08.2020

В трехмерной векторной графике

используются однородные матрицы преобразования 4x4, и нам нужны прямые и обратные матрицы стенда, которые можно вычислить с помощью (суб)детерминантов. Но для ортогональных матриц есть более быстрые и точные методы, такие как

Многие тесты пересечения используют определители (или могут быть преобразованы для их использования), особенно для квадратных уравнений (эллипсоиды,...), например:

как предложил Мэтт Тиммерманс, вы можете решить, является ли ваша матрица обратимой или левой/правой, что полезно для обнаружения ошибок в матрицах (ухудшение точности) или переноса скелетов между форматами или двигателями и т. д.

И я уверен, что в векторной математике есть много других применений для него (IIRC IGES использует их для поверхностей вращения, перекрестное произведение является определяющим,...)

person Spektre    schedule 14.08.2018

Критерий вписанной окружности является ключевым примитивом для вычисления диаграмм Вороного и триангуляции Делоне. Он задается знаком определителя 4x4.

введите здесь описание изображения

(изображение с сайта https://www.cs.cmu.edu/~quake/robust.html)

person lhf    schedule 16.08.2018