Сторонний ODE для Xtreme

Вы просматриваете архив старого форума. Новый форум по ссылке


Автор Сообщение

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 26-02-2010 17:15
Посмотрел я так на "вкрученный" ode в Xtreme и сравнил с версией ode которой пользовались еще во времена GMi и получается, что тот, который в X3D, мягко говоря, говененький. Вы, Gecko, помнится говорили, что пытались прикрутить к X3D разные физ. движки, а этот
(Project Open Dynamics Engine for Game Maker (OpenSource)
by MACARRAUM - Copyright 2005) тоже пытались? Я просто хотел бы его использовать, но хотелось бы заранее знать будет ли с ним все гладко?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 26-02-2010 17:45
получается, что тот, который в X3D, мягко говоря, говененький.

Еще какой! Вы знаете, сколько там багов? В 2.0.2.0 силы не работают, если при запуске к телу не будет приложена сила "по умолчанию"; при попытке создать сочленение Hinge2 - движок падает; при попытке создать геометрию TriMesh - та же история...

Вы, Gecko, помнится говорили, что пытались прикрутить к X3D разные физ. движки, а этот (Project Open Dynamics Engine for Game Maker (OpenSource) by MACARRAUM - Copyright 2005) тоже пытались? Я просто хотел бы его использовать, но хотелось бы заранее знать будет ли с ним все гладко?

Я, сказать по правде, пытался прикрутить все существующие физ. движки для GM. Но выяснил, что это сделать не получится, так как вектор поворота тел, который возвращают эти движки, предназначен для Direct3D, а не для OpenGL (у них, оказалось, несовместимый способ представления данных в системе ось-угол). Эту проблему можно было бы решить кватернионами или матрицами, но Xtreme3D с ними не работает. Теоретически, можно, конечно, покопаться в исходниках этих движков и внести нужные изменения, но мне лично легче написать свой собственный враппер ODE. Правда, к тому времени, как я это понял, я уже начал писать Phantom3D, в котором изначально будет полная поддержка ODE.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 26-02-2010 18:07
Вот оно как. Интересно, а как в ГМОгре это будет реализовыватся, ведь там поддержка как DirectX, так и OpenGL?
Но, а что мне-то делать? Я так хотел создать игру завязанную на физике, причем хотел сделать на X3D...
Обидно конечно, но может есть какое-то решение?

P.S Кстати интересно то, что пример физики на GMI, работает стабильно, как при использовании рендера DX, так и при OpenGL...

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 26-02-2010 22:12
Интересно, а как в ГМОгре это будет реализовыватся, ведь там поддержка как DirectX, так и OpenGL?

Кстати интересно то, что пример физики на GMI, работает стабильно, как при использовании рендера DX, так и при OpenGL...

Это потому что используются не отдельные векторы позиции и поворота, а матрицы преобразования. А если конкретно, в ODE - собственный формат матриц, который не зависит от используемого API и конвертируется графическим движком в формат, понятный Direct3D или OpenGL.
К сожалению, я в матричной алгебре не очень силен, поэтому пока не знаю, как из них получать повороты по трем осям. Просто при программировании на чистом OpenGL этого не требуется. На первых порах можно даже не вникать особо, как работают эти матрицы. Я, например, знаю только, как они умножаются (для того, чтобы комбинировать последовательности преобразований), как получить матрицы поворота, как конвертировать матрицу ODE в формат OpenGL, как преобразовать строчную матрицу в столбцовую - и больше ничего. Пока мне понадобилось только это.
Может, как-нибудь проштудирую теорию, и потом попробую написать враппер.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 26-02-2010 22:40
Это потому что используются не отдельные векторы позиции и поворота, а матрицы преобразования. А если конкретно, в ODE - собственный формат матриц, который не зависит от используемого API и конвертируется графическим движком в формат, понятный Direct3D или OpenGL.

Интересно-интересно, то есть, как я понял, GMI сам конвертирует матрицы в понятный для определенного API формат?

К сожалению, я в матричной алгебре не очень силен, поэтому пока не знаю, как из них получать повороты по трем осям. Просто при программировании на чистом OpenGL этого не требуется. На первых порах можно даже не вникать особо, как работают эти матрицы. Я, например, знаю только, как они умножаются (для того, чтобы комбинировать последовательности преобразований), как получить матрицы поворота, как конвертировать матрицу ODE в формат OpenGL, как преобразовать строчную матрицу в столбцовую - и больше ничего. Пока мне понадобилось только это.

Да, чую что программирование все же трудная штука, а если не секрет, откуда черпаете знания?

Может, как-нибудь проштудирую теорию, и потом попробую написать враппер.

Было бы не плохо.

Кстати, а какую версию ode использует Phantom? И нельзя ли его, например, прикрутить к X3D потом? (Даже рифма получилась... забавно))

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 27-02-2010 13:31
Интересно-интересно, то есть, как я понял, GMI сам конвертирует матрицы в понятный для определенного API формат?


Ой, прошу прощения, не совсем точно выразился. В случае с использованием ODE в GMI на уровне GML, используются все же не матрицы, а универсальные вектора позиции и поворота. А вот они, в свою очередь, преобразуются движком в понятный для определенного API формат.
Вот в ГМОгре, скорее всего, для интеграции Newton используются матрицы.

Да, чую что программирование все же трудная штука, а если не секрет, откуда черпаете знания?

C/C++ изучал по уже упомянутой мною книжке, OpenGL - по урокам NeHe, ну а остальное - собирал по крупицам, так сказать, с разных сайтов, форумов, статей. И до сих пор собираю. Например, очень помогают stackoverflow.com, linuxquestions.org, gamedev.net.

Кстати, а какую версию ode использует Phantom? И нельзя ли его, например, прикрутить к X3D потом?

Версия не самая новая - так что, наверно, буду собирать ODE из исходников. А в том, чтобы прикрутить его к X3D, особой проблемы нет, это вполне возможно.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 27-02-2010 14:24
С GMI теперь все понятно, за ссылки спасибо, хотя с английским у меня не особо хорошо, но может, что интересное найду, ну и на будущее пригодятся.
Надеюсь, вы все же в скором времени соберете новую версию ODE, не хочется возвращаться к U3D, мне его привязанность к объектам GM не нравиться, хотя есть GMI, это будет весело если игра выйдет на нем, но все же надеюсь на вас. Если вы уж будете собирать, то выкладывайте, пожалуйста, что сделали, пускай и не все сразу там будет, но хотя бы самое необходимое, что бы я хоть что-то делал на X3D, а то интерес угаснуть может.

P.S Кстати, копался я со шрифтами...
На счет новой версии Xtreme, шрифты, как помните, не работают ни на Vist'е, ни на Seven, а оказывается проблема решается установкой патча, на отображение кириллицы в различных программах, по крайней у меня сейчас все работает.
А, что касается русского шрифта для X3D из изображения, придется перерисовывать шрифт и набирать текст на английском (точнее набор букв, обозначающих русские буквы) а текст будет, соответственно, на русском на экране, для удобства можно написать программу для перевода букв, в последовательный набор определенных символов...вот этим я и займусь пока...

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 27-02-2010 17:41
На счет новой версии Xtreme, шрифты, как помните, не работают ни на Vist'е, ни на Seven, а оказывается проблема решается установкой патча, на отображение кириллицы в различных программах, по крайней у меня сейчас все работает.

Ну-ка, ну-ка, интересненько! И что это за патч, где его скачать? Надо будет об этом в справке написать, в разделе FAQ.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 27-02-2010 17:50
Я исправлял специальной программой Fix Windows 7, там много патчей, среди которых и исправление отображения рус. языка. Я не ручаюсь, что именно поэтому все запускается, но скачав и запустив X3D 2.1 все примеры запустились, возможно дело в этом. Для Vist'ы скорее все существует нечто подобное.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 08-03-2010 14:01
Собственно интересно, что там с Phantom'ом, ODE и FPS #9? как обстоят дела?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 19-03-2010 22:24
Фантом понемногу приближается к релизу 0.1. Я решил все переписать с нуля. Изменил архитектуру, добавил встроенный скриптовый язык, и еще много чего планирую. К концу весны наверно выпущу альфа-версию.
Параллельно пишу враппер ODE. Скорее всего, это будет универсальный враппер, который можно использовать как с Фантомом, так и с X3D.
Выход FPS 9 намечен на начало мая. В середине мая у меня начинается сессия, потом - практика, так что там будет уже не до этого.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 20-03-2010 15:46
Фантом понемногу приближается к релизу 0.1. Я решил все переписать с нуля. Изменил архитектуру, добавил встроенный скриптовый язык, и еще много чего планирую. К концу весны наверно выпущу альфа-версию.

С чего вдруг решение о переписывании с нуля?
Я, конечно, хотел бы видеть Фантом как независимый движок с графической оболочкой и компилятором. Гм слишком медленный все-таки, что в нем хорошего, так это простота языка, а в остальном от него мало проку. Надеюсь, когда-нибудь фантом обретет такую форму
Весной альфа-версия? Уже не плохо, думаю в сентябре увидим Пре -релиз фантома.
Параллельно пишу враппер ODE. Скорее всего, это будет универсальный враппер, который можно использовать как с Фантомом, так и с X3D.

И каковы результаты, если, конечно, это не секрет?
Выход FPS 9 намечен на начало мая. В середине мая у меня начинается сессия, потом - практика, так что там будет уже не до этого.

Это хорошо, ну думаю, если статьи мои по переводу сгодятся, то можно и в 9 выпуск сунуть.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 21-03-2010 10:22
С чего вдруг решение о переписывании с нуля?

Так сказать, редизайн архитектуры. Теперь движок будет построен по сверхмодульному принципу: есть самостоятельное графическое ядро (враппер к командам OpenGL) и отдельная от него библиотека - менеджер объектов. И ядро, и менеджер можно обновлять и изменять независимо друг от друга. Теоретически, ядро можно даже портировать на DirectX, OpenGL 2.0 и т.д, а в менеджер пихать любые функции: звук, сеть, физику - все что угодно. Абсолютная свобода и расширяемость - как раз то, чего не хватает в других движках.

Я, конечно, хотел бы видеть Фантом как независимый движок с графической оболочкой и компилятором. Гм слишком медленный все-таки, что в нем хорошего, так это простота языка, а в остальном от него мало проку. Надеюсь, когда-нибудь фантом обретет такую форму

Почему бы и нет? Я думаю, с постепенной более глубокой интеграцией скриптового языка (AngelScript), Фантом будет становиться все более независимым от ГМ, и в перспективе вполне может стать самостоятельнм движком.

И каковы результаты, если, конечно, это не секрет?

Пока ничего определенного. Враппер все еще на том же уровне, на каком был при последнем релизе Фантома.

Это хорошо, ну думаю, если статьи мои по переводу сгодятся, то можно и в 9 выпуск сунуть.

Обязательно.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 06-06-2010 11:58
Эх, как мне сейчас не хватает нормального физ.движка для X3D
Поработал поближе с Ode, понял, что TriMesh в этой версии совсем убогое ***, частенько все глючит. Плюнул на него, проку никакого.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 06-06-2010 12:13
Для нормального просчета столкновений Trimesh'ей нужна библиотека OPCODE. А экстримовый ODE почему-то собран без OPCODE, но с поддержкой Trimesh. Отсюда и глюки.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 06-06-2010 12:28
Все понятно. Еще такой вопрос, ведь есть исходники Ode для GLscene, из них разве трудно собрать работоспособный ode для X3D или есть свои нюансы?

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 18-06-2010 12:19
Gecko, я вас просто на коленях прошу...напишите враппер физики для X3D пока вы тут... . Мне очень нужен хороший физ. двиг. Я бы, конечно, мог и написать, то что я хочу и на U3D или на Ogre или вообще на GMI, но я по тем или иным причинам, не хочу или не могу писать на них. Я готов помочь хоть чем-нибудь, а самому написать враппер не получиться, знаний не хватает...

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 18-06-2010 14:05
Там не все так просто... Я ODE знаю только поверхностно (разумеется, речь идет о ODE для C/C++, а не X3D - между ними есть определенная разница), пока на уровне шариков-кубиков. При этом для синхронизации объектов ODE и OpenGL я использую матрицы (это проще всего). Ясное дело, в X3D от них мало толку, поэтому нужен способ вычленить из них координаты и углы поворота. Вот с этим пока проблемы.
Я честно говоря потому-то и решил отказаться от готовых движков - по причине их монолитности и невозможности внедряться в их структуру. Экстрим с его намертво встроенным ODE тому пример.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 18-06-2010 14:34
поэтому нужен способ вычленить из них координаты и углы поворота. Вот с этим пока проблемы.

Остается гадать, как это реализовано было Xception'ом.
Я честно говоря потому-то и решил отказаться от готовых движков - по причине их монолитности и невозможности внедряться в их структуру. Экстрим с его намертво встроенным ODE тому пример.

...Что же за негодяйство
Тогда назревает вопрос, что же делать? Есть ли для меня у вас хороший совет на этот счет?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 19-06-2010 11:12
Остается гадать, как это реализовано было Xception'ом.

А это не Xception реализовал, это сделано на уровне GLScene. Но там, думаю, тоже матрицы.

Тогда назревает вопрос, что же делать? Есть ли для меня у вас хороший совет на этот счет?

Одно из двух: либо выжимать максимум из доступного ODE, либо отказываться от X3D. Мне пришлось выбрать второе.

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 19-06-2010 11:48
А это не Xception реализовал, это сделано на уровне GLScene. Но там, думаю, тоже матрицы.

Что-то я запутался. В чем разница между ode.dll предназначенной именно для GLscene (с открытым кодом вроде), перед ode.dll для С++? И если, как я понимаю, для GLscene все в библиотеке ode уже реализовано все, почему не написать с неё враппер? Поясните.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 20-06-2010 21:02
Я думаю, разницы особой нет (разве что, как я понимаю, нет поддержки Opcode и версия, скорее всего, устаревшая). Вся суть - во внутренних компонентах GLScene, которые синхронизируют объекты c телами ODE. В них как раз и баги. Эти компоненты вшиты в X3D и, естественно, изменению не подлежат. А я Delphi знаю плоховато, поэтому даже заглядывать туда боюсь...

Ответственный за CHM
Группа: Модераторы
Сообщений: 346
Добавлено: 20-06-2010 21:07
Значит выход один, перейти на GMI...

бывалый
Группа: Участники
Сообщений: 36
Добавлено: 30-08-2017 10:36
Остается гадать, как это реализовано было Xception'ом.

А это не Xception реализовал, это сделано на уровне GLScene. Но там, думаю, тоже матрицы.

Тогда назревает вопрос, что же делать? Есть ли для меня у вас хороший совет на этот счет?

Одно из двух: либо выжимать максимум из доступного ODE, либо отказываться от X3D. Мне пришлось выбрать второе.


Удалось ли устранить эту проблему в новых версиях? Xtreme3d

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 30-08-2017 23:32
В новых версиях устранена проблема с автовыключением тел (раньше все динамические тела создавались в выключенном состоянии) и поддержкой Freeform. Есть, правда, ограничения по проверке столкновений - например, не поддерживается столкновение Freeform с цилиндрами. Это ограничения самого ODE, используется довольно старая версия - можно, в принципе, попробовать обновить.