Предположим, у меня есть 2 матрицы:OpenGL - Матричные операции
MatrixA = translation1 * scale1 * rotation1
MatrixB = translation2 * rotation2 * translation3
Is MatrixA * MatrixB
равна translation1 * scale1 * rotation1 * translation2 * rotation2 * translation3
? Или что-то еще рядом?
На самом деле, я просто хочу знать, могу ли я избежать умножения матриц и сохранить некоторый процессор, используя только одну матрицу, а затем сгруппировать математические операции.
Поскольку я планирую создать небольшой пользовательский 2D-движок, который будет построен на LibGDX, включая графические компоненты API, аналогичный тому, что вы можете найти в Android SDK. Во всяком случае, будут некоторые компоненты, те, которые находятся в контейнерах, которые должны будут двигаться, когда их родители перемещаются. Поэтому мне нужна эта измененная арифметика. Я знаю, что это возможно с помощью матриц, но поскольку он должен работать на мобильных устройствах, я не хочу, чтобы он был слишком медленным.
Итак, есть ли реальное преимущество в использовании вычисления цепочки вместо прямого умножения матриц? Является ли матричное умножение медленным? Стоит ли иметь такую структуру кода (я имею в виду, для использования ЦП и памяти на мобильных телефонах)? – Flawyte
@miNde это определенно экономит ваши операции. В вашем коде выше вы выполняете 7 матричных умножений в целом, а при цепочке, которую вы выполняете 6. Я лично всегда использую «цепочку», но не слишком беспокоитесь об этом, если вы не видите хитов производительности. –
На самом деле я еще не тестировал тестирование. Я просто хотел быть исправленным, прежде чем приступать к разработке чего-то с этим. Я не хочу работать ни за что, звучит нормально :) – Flawyte