Автор | Сообщение | |||
Hacker Ответственный за 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) тоже пытались? Я просто хотел бы его использовать, но хотелось бы заранее знать будет ли с ним все гладко? |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 26-02-2010 17:45 | |||
Еще какой! Вы знаете, сколько там багов? В 2.0.2.0 силы не работают, если при запуске к телу не будет приложена сила "по умолчанию"; при попытке создать сочленение Hinge2 - движок падает; при попытке создать геометрию TriMesh - та же история...
Я, сказать по правде, пытался прикрутить все существующие физ. движки для GM. Но выяснил, что это сделать не получится, так как вектор поворота тел, который возвращают эти движки, предназначен для Direct3D, а не для OpenGL (у них, оказалось, несовместимый способ представления данных в системе ось-угол). Эту проблему можно было бы решить кватернионами или матрицами, но Xtreme3D с ними не работает. Теоретически, можно, конечно, покопаться в исходниках этих движков и внести нужные изменения, но мне лично легче написать свой собственный враппер ODE. Правда, к тому времени, как я это понял, я уже начал писать Phantom3D, в котором изначально будет полная поддержка ODE. |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 26-02-2010 18:07 | |||
Вот оно как. Интересно, а как в ГМОгре это будет реализовыватся, ведь там поддержка как DirectX, так и OpenGL? Но, а что мне-то делать? Я так хотел создать игру завязанную на физике, причем хотел сделать на X3D... Обидно конечно, но может есть какое-то решение? P.S Кстати интересно то, что пример физики на GMI, работает стабильно, как при использовании рендера DX, так и при OpenGL... |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 26-02-2010 22:12 | |||
Это потому что используются не отдельные векторы позиции и поворота, а матрицы преобразования. А если конкретно, в ODE - собственный формат матриц, который не зависит от используемого API и конвертируется графическим движком в формат, понятный Direct3D или OpenGL. К сожалению, я в матричной алгебре не очень силен, поэтому пока не знаю, как из них получать повороты по трем осям. Просто при программировании на чистом OpenGL этого не требуется. На первых порах можно даже не вникать особо, как работают эти матрицы. Я, например, знаю только, как они умножаются (для того, чтобы комбинировать последовательности преобразований), как получить матрицы поворота, как конвертировать матрицу ODE в формат OpenGL, как преобразовать строчную матрицу в столбцовую - и больше ничего. Пока мне понадобилось только это. Может, как-нибудь проштудирую теорию, и потом попробую написать враппер. |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 26-02-2010 22:40 | |||
Интересно-интересно, то есть, как я понял, GMI сам конвертирует матрицы в понятный для определенного API формат?
Да, чую что программирование все же трудная штука, а если не секрет, откуда черпаете знания?
Было бы не плохо. Кстати, а какую версию ode использует Phantom? И нельзя ли его, например, прикрутить к X3D потом? (Даже рифма получилась... забавно)) |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 27-02-2010 13:31 | |||
Ой, прошу прощения, не совсем точно выразился. В случае с использованием ODE в GMI на уровне GML, используются все же не матрицы, а универсальные вектора позиции и поворота. А вот они, в свою очередь, преобразуются движком в понятный для определенного API формат. Вот в ГМОгре, скорее всего, для интеграции Newton используются матрицы.
C/C++ изучал по уже упомянутой мною книжке, OpenGL - по урокам NeHe, ну а остальное - собирал по крупицам, так сказать, с разных сайтов, форумов, статей. И до сих пор собираю. Например, очень помогают stackoverflow.com, linuxquestions.org, gamedev.net.
Версия не самая новая - так что, наверно, буду собирать ODE из исходников. А в том, чтобы прикрутить его к X3D, особой проблемы нет, это вполне возможно. |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 27-02-2010 14:24 | |||
С GMI теперь все понятно, за ссылки спасибо, хотя с английским у меня не особо хорошо, но может, что интересное найду, ну и на будущее пригодятся. Надеюсь, вы все же в скором времени соберете новую версию ODE, не хочется возвращаться к U3D, мне его привязанность к объектам GM не нравиться, хотя есть GMI, это будет весело если игра выйдет на нем, но все же надеюсь на вас. Если вы уж будете собирать, то выкладывайте, пожалуйста, что сделали, пускай и не все сразу там будет, но хотя бы самое необходимое, что бы я хоть что-то делал на X3D, а то интерес угаснуть может. P.S Кстати, копался я со шрифтами... На счет новой версии Xtreme, шрифты, как помните, не работают ни на Vist'е, ни на Seven, а оказывается проблема решается установкой патча, на отображение кириллицы в различных программах, по крайней у меня сейчас все работает. А, что касается русского шрифта для X3D из изображения, придется перерисовывать шрифт и набирать текст на английском (точнее набор букв, обозначающих русские буквы) а текст будет, соответственно, на русском на экране, для удобства можно написать программу для перевода букв, в последовательный набор определенных символов...вот этим я и займусь пока... |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 27-02-2010 17:41 | |||
Ну-ка, ну-ка, интересненько! И что это за патч, где его скачать? Надо будет об этом в справке написать, в разделе FAQ. |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 27-02-2010 17:50 | |||
Я исправлял специальной программой Fix Windows 7, там много патчей, среди которых и исправление отображения рус. языка. Я не ручаюсь, что именно поэтому все запускается, но скачав и запустив X3D 2.1 все примеры запустились, возможно дело в этом. Для Vist'ы скорее все существует нечто подобное. | ||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 08-03-2010 14:01 | |||
Собственно интересно, что там с Phantom'ом, ODE и FPS #9? как обстоят дела? | ||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 19-03-2010 22:24 | |||
Фантом понемногу приближается к релизу 0.1. Я решил все переписать с нуля. Изменил архитектуру, добавил встроенный скриптовый язык, и еще много чего планирую. К концу весны наверно выпущу альфа-версию. Параллельно пишу враппер ODE. Скорее всего, это будет универсальный враппер, который можно использовать как с Фантомом, так и с X3D. Выход FPS 9 намечен на начало мая. В середине мая у меня начинается сессия, потом - практика, так что там будет уже не до этого. |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 20-03-2010 15:46 | |||
С чего вдруг решение о переписывании с нуля? Я, конечно, хотел бы видеть Фантом как независимый движок с графической оболочкой и компилятором. Гм слишком медленный все-таки, что в нем хорошего, так это простота языка, а в остальном от него мало проку. Надеюсь, когда-нибудь фантом обретет такую форму Весной альфа-версия? Уже не плохо, думаю в сентябре увидим Пре -релиз фантома.
И каковы результаты, если, конечно, это не секрет?
Это хорошо, ну думаю, если статьи мои по переводу сгодятся, то можно и в 9 выпуск сунуть. |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 21-03-2010 10:22 | |||
Так сказать, редизайн архитектуры. Теперь движок будет построен по сверхмодульному принципу: есть самостоятельное графическое ядро (враппер к командам OpenGL) и отдельная от него библиотека - менеджер объектов. И ядро, и менеджер можно обновлять и изменять независимо друг от друга. Теоретически, ядро можно даже портировать на DirectX, OpenGL 2.0 и т.д, а в менеджер пихать любые функции: звук, сеть, физику - все что угодно. Абсолютная свобода и расширяемость - как раз то, чего не хватает в других движках.
Почему бы и нет? Я думаю, с постепенной более глубокой интеграцией скриптового языка (AngelScript), Фантом будет становиться все более независимым от ГМ, и в перспективе вполне может стать самостоятельнм движком.
Пока ничего определенного. Враппер все еще на том же уровне, на каком был при последнем релизе Фантома.
Обязательно. |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 06-06-2010 11:58 | |||
Эх, как мне сейчас не хватает нормального физ.движка для X3D Поработал поближе с Ode, понял, что TriMesh в этой версии совсем убогое ***, частенько все глючит. Плюнул на него, проку никакого. |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 06-06-2010 12:13 | |||
Для нормального просчета столкновений Trimesh'ей нужна библиотека OPCODE. А экстримовый ODE почему-то собран без OPCODE, но с поддержкой Trimesh. Отсюда и глюки. | ||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 06-06-2010 12:28 | |||
Все понятно. Еще такой вопрос, ведь есть исходники Ode для GLscene, из них разве трудно собрать работоспособный ode для X3D или есть свои нюансы? |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 18-06-2010 12:19 | |||
Gecko, я вас просто на коленях прошу...напишите враппер физики для X3D пока вы тут... . Мне очень нужен хороший физ. двиг. Я бы, конечно, мог и написать, то что я хочу и на U3D или на Ogre или вообще на GMI, но я по тем или иным причинам, не хочу или не могу писать на них. Я готов помочь хоть чем-нибудь, а самому написать враппер не получиться, знаний не хватает... | ||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 18-06-2010 14:05 | |||
Там не все так просто... Я ODE знаю только поверхностно (разумеется, речь идет о ODE для C/C++, а не X3D - между ними есть определенная разница), пока на уровне шариков-кубиков. При этом для синхронизации объектов ODE и OpenGL я использую матрицы (это проще всего). Ясное дело, в X3D от них мало толку, поэтому нужен способ вычленить из них координаты и углы поворота. Вот с этим пока проблемы. Я честно говоря потому-то и решил отказаться от готовых движков - по причине их монолитности и невозможности внедряться в их структуру. Экстрим с его намертво встроенным ODE тому пример. |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 18-06-2010 14:34 | |||
Остается гадать, как это реализовано было Xception'ом.
...Что же за негодяйство Тогда назревает вопрос, что же делать? Есть ли для меня у вас хороший совет на этот счет? |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 19-06-2010 11:12 | |||
А это не Xception реализовал, это сделано на уровне GLScene. Но там, думаю, тоже матрицы.
Одно из двух: либо выжимать максимум из доступного ODE, либо отказываться от X3D. Мне пришлось выбрать второе. |
||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 19-06-2010 11:48 | |||
Что-то я запутался. В чем разница между ode.dll предназначенной именно для GLscene (с открытым кодом вроде), перед ode.dll для С++? И если, как я понимаю, для GLscene все в библиотеке ode уже реализовано все, почему не написать с неё враппер? Поясните. |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 20-06-2010 21:02 | |||
Я думаю, разницы особой нет (разве что, как я понимаю, нет поддержки Opcode и версия, скорее всего, устаревшая). Вся суть - во внутренних компонентах GLScene, которые синхронизируют объекты c телами ODE. В них как раз и баги. Эти компоненты вшиты в X3D и, естественно, изменению не подлежат. А я Delphi знаю плоховато, поэтому даже заглядывать туда боюсь... | ||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 20-06-2010 21:07 | |||
Значит выход один, перейти на GMI... | ||||
van88268 бывалый Группа: Участники Сообщений: 36 |
Добавлено: 30-08-2017 10:36 | |||
Удалось ли устранить эту проблему в новых версиях? Xtreme3d |
||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 30-08-2017 23:32 | |||
В новых версиях устранена проблема с автовыключением тел (раньше все динамические тела создавались в выключенном состоянии) и поддержкой Freeform. Есть, правда, ограничения по проверке столкновений - например, не поддерживается столкновение Freeform с цилиндрами. Это ограничения самого ODE, используется довольно старая версия - можно, в принципе, попробовать обновить. |