Форум программистов, компьютерный форум, киберфорум
Наши страницы

Объединение view и projection матриц - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Немного философии ООП http://www.cyberforum.ru/cpp/thread1808784.html
На днях на работе возник холивар с коллегами, к правильному решению пришли только на следующий день, почитав Мейерса и Саттера (один из участников холивара уже знал о правильном решении, но...
C++ OpenCV захват видео с веб-камеры Начал изучать OpenCV. В просторах интернета нашел данный код: #include <cv.h> #include <highgui.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv) { // получаем... http://www.cyberforum.ru/cpp/thread1808506.html
Как компилятор обрабатывает член класса static constexpr const char* C++
Привет! Наткнулся на непонятный момент class Foo { public: static constexpr const char* PTR = "value"; }; без constexpr не компилируется. Вопрос - как компилятора без линкера...
C++ Распознование животных на изображении
Стала интересна тема распознавания образов на изображениях. Программа должна получать картинку с животным и определить какое это животное(как я понимаю, задача не простая, но все же) . Подскажите в...
C++ Как подружить компьютер c МК через USB http://www.cyberforum.ru/cpp/thread1807335.html
Здравствуйте, уважаемые форумчане! Никогда не работал с USB нужна помощь. Есть компьютер под управлением Windows 7, плата разработки DE0-Nano-SoC. Необходимо написать программу для ОС, которая...
C++ Различия между Java и Си++ Я раньше программировал на си++,сейчас начал на java,нужно понять основные различия 1. Каковы отличия в структуре программы вычисления простого арифметического выражения на языке Си и Си++ от... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1646 / 1018 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
23.09.2016, 19:33
Цитата Сообщение от Pro100Tom Посмотреть сообщение
Column-Major
Это row-major, то, что и требовалось, соответствует привычной форме записи линейных уравнений.

Цитата Сообщение от Pro100Tom Посмотреть сообщение
view матрица: абсолютно тоже самое, только инверсирована
Нет. Инверсии там быть не должно никакой. Задача model - перенести точки из собственной СК объекта в СК сцены, задача view-матрицы перенести точки из СК сцены в СК наблюдателя (где глаз в нулевой позиции, направление взгляда по оси Z и так далее). Как правило, view-матрица содержит 2 преобразования: перенос на координаты наблюдателя, взятые со знаком минус (очевидно, что после этого он окажется в начале координат, что и требовалось) и поворот, совмещающий направление взгляда с осью Z и направление вверх с осью Y.

Цитата Сообщение от Pro100Tom Посмотреть сообщение
все эти матрицы перемножаю
Порядок перемножения матриц не зависит от row-major или column-major, и судя по исходникам, тут он соблюдён.

Цитата Сообщение от Pro100Tom Посмотреть сообщение
Как я перемножаю вертекс на матрицу:
Если это не настоящий код, а просто иллюстрация порядка перемножения, то порядок правильный, соответствующий row-major order. Если настоящий код, то это ужас-ужас (нельзя же пересчитывать компоненту, опираясь на уже изменённые предыдущие компоненты).
После перемножения не забываем делить итоговый вектор на его компоненту w (нормализация).

Цитата Сообщение от Pro100Tom Посмотреть сообщение
чтобы получить transformation матрицу я перемножаю
Перемножать надо в той последовательности, в которой применяются эти преобразования. Если у нас есть объект в центре, то translation(10, 0, 0) * scale (2) отнесёт его на 20 единиц, а scale(2) * translation(10, 0, 0) на 10 единиц.

Добавлено через 6 минут
Забыл упомянуть: порядок умножения зависит от того, в какой СК выражено преобразование. Если мы выражаем преобразования, всё время оставаясь в исходной СК и наблюдая за изменяющимся от наших действий объектом, то перемножать надо в обратном порядке. Если же после каждого преобразования мы следуем в новую СК вслед за объектом (при этом он для нас остаётся неизменным и неподвижным), то перемножение идёт в прямом порядке.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru