HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Matrix Builder
программа для построения матриц афинных преобразований
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Cool Matrix Builder

Для начала - что это за программа и что она делает.
Программа эта генерирует функцию на с++, которая в свою очередь построит вам матрицу заданных афинных преобразований.

Те, кто не знает, что такое афинные преобразования, могут смело закрывать страницу и дальше не читать.

Остальные наверное уже поняли, для чего это нужно - чтобы не вызывать glTranslate/glRotate, конечно же. Для того чтобы построить матрицу трансформации именно тогда и там, где это удобно, а в дальнейшем загружать ее в OpenGL вызовом glLoadMatrix/glMultMatrix. Можно использовать эту матрицу и для преобразований на CPU, например, для расчета повернутых/перемещенных с моделькой аттачей, которые использует ваша игровая логика.

Получаемая функция намного оптимизированнее, чем glRotate, т.к. заведомо отбрасывает нулевые слагаемые и не умножает на множитель, если он заведомо равен 1. И вообще, не вычисляет ничего кроме того, что реально нужно.

Программка онлайновая, но написана на Javascript, так что при желании можете ее выкачать каким-нибудь Teleport Pro (там помимо html-файла еще три js-файла).

Ссылка: http://hlfx.ru/matrix.html

О впечатлениях и найденных ошибках, а также предложения по доработке прошу оставлять в этой теме.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 26934

Старое сообщение 23-02-2008 19:29
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Ну я уже заценил. Весьма полезная весч для ГЛщиков. =)

Сообщить модератору | | IP: Записан
Сообщение: 26936

Старое сообщение 23-02-2008 19:38
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Government-Man не только гл-щиков Я ж привел пример - посчитать точки аттачей после поворота. Тут всяко надо умножать на матрицу. Другой вопрос что в д3дх есть свои функции - это да.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 26937

Старое сообщение 23-02-2008 19:41
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


XaeroX ну у мну пока D3DX с подобными вещами справляется.

Сообщить модератору | | IP: Записан
Сообщение: 26940

Старое сообщение 23-02-2008 20:18
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



Для разворота физ. объектов - вещь незаменимая
*спойлер*
Ку-движки используют извращенные координаты, по сравнению с общепринятыми.

Сообщить модератору | | IP: Записан
Сообщение: 26941

Старое сообщение 23-02-2008 21:48
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



Круто
Правдо мне врятли пригодится

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 26944

Старое сообщение 24-02-2008 07:33
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Гыгы... Сейчас с помощью профайлера сравнил скорость матричных ф-ий D3DX с собственными самопальными аналогами... Выяснил, что D3DX медленнее в среднем в 200(!!!) раз!

Я подозревал, что D3DX - тормоз, но чтоб настолько!.. Сейчас в срочном порядке удалаю эту ересь из кода и заменяю своими ф-иями... %)

Сообщить модератору | | IP: Записан
Сообщение: 26960

Старое сообщение 24-02-2008 18:15
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



Government-Man каждый уважающий себя программер пишет матчлибу сам, либо утягивает широкоизвестные

Сообщить модератору | | IP: Записан
Сообщение: 26962

Старое сообщение 24-02-2008 18:31
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Изменения в программе:

- добавлены опции "перемещать после вращения" и "Ось Z указывает вверх", специально для построения view-матрицы. Вторая опция - специально для любителей кармаковской системы координат (я тоже являюсь ее любителем )
- исправлена ошибка в функциях умножения матриц - но в матрицах, генерировавшихся в старой версии, эта ошибка не проявлялась.

Как построить view-матрицу:
Какого типа матрица? - "Транспонированная (OpenGL)"
Вокруг какой оси будем поворачивать сначала? "X"
Вокруг какой оси будем поворачивать потом? "Y"
Вокруг какой оси будем поворачивать напоследок? "Z"
А перемещать будем? "Да, после вращения"
Ось Z указывает вверх? Если вы используете кармаковскую систему координат (Quake 1/2/3) - то "Да", иначе "Нет"
Получите функцию. А использовать ее надо примерно так:

C++ Source Code:
BuildViewMatrix(DEG2RAD(-view_angles[ROLL]), DEG2RAD(-view_angles[PITCH]), DEG2RAD(-view_angles[YAW]), inverted_view_origin, view_matrix);
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(view_matrix);

__________________

Сообщить модератору | | IP: Записан
Сообщение: 27542

Старое сообщение 17-03-2008 16:10
-
LLAPb
Всея руси

Дата регистрации: Apr 2008
Проживает: Москва
Сообщений: 34
Возраст: 36

Рейтинг



Возникает такой вот вопрос: А почему, собственно, важен порядок проведения преобразований? Я, конечно, понимаю, что с точки зрения математики порядок умножения матриц имеет значение. Но, с точки зрения логики, какая разница, повернёшь ли ты сначала объект вокруг оси Y, а потом вокруг Z, или наоборот?

Сообщить модератору | | IP: Записан
Сообщение: 29116

Старое сообщение 27-04-2008 16:49
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



LLAPb возъми к примеру бутылку из под пива и попробуй её повернуть сначала влево, а потом вверх, и наоборот, сначала вверх, а потом влево. Это с точки зрения простой логики.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 29121

Старое сообщение 27-04-2008 19:50
-
LLAPb
Всея руси

Дата регистрации: Apr 2008
Проживает: Москва
Сообщений: 34
Возраст: 36

Рейтинг



Дядя Миша Да, действительно, что-то я попутал. Если б не этот совет насчёт бутылки...

Сообщить модератору | | IP: Записан
Сообщение: 29304

Старое сообщение 02-05-2008 18:38
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 19:41. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Matrix Builder
программа для построения матриц афинных преобразований
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024