forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Полезные функции (http://forum.boolean.name/forumdisplay.php?f=17)
-   -   BlitzODE.bb (http://forum.boolean.name/showthread.php?t=140)

jimon 26.09.2005 00:00

так как оригинальная либа глючная и неудобная то я начинаю разрабатывать свою версию .. так сказать jimon modification :))


вообщем в большинстве глюков ode я разобрался

первый и главный глюк - нельзя в ode зделать нормальную колозию между обектами создаными с помощью trimesh

вторые числятся к глюкам с соотнощению размеров

также есть глюки с определением векторов отражения и др

выкладываю первую версию... для разминки
если чтото непонятно - спрашивайте ;)

jimon 29.09.2005 23:40

продолжая тему оптимизации и изучения ode :

теперь моя модификация ode будет называтся jimon ODE - jODE :)

вообщем я немного модифицировал blitzode.bb
добавил (пока примитивную) функцию подгрузки физических моделей своего формата
и зделал пример B) смотрите атач ... файл там всевото 4 килобайта

вообщем уже сейчас существует редактор физических моделей
но пока он примитивный
несоблюдает некоторых правил стандарта
и глючит иногда :))
(я редактор взял от проекта Xblitz2 - моего шутера)

ps. теперь глюк - никак немогу понять какой формы делается цылиндр в ode
я пришол к выводу что ето вытянутый шар :unsure:

ps2. в будущем (после того как совсем разберусь и доведу игру до играбельной стадии) думаю написать пару статей на тему "работа ode в тандеме с blitz3d"
:))

jimon 30.09.2005 21:11

новая версия jode
более мение разобрался с модулем загрузки моделей

теперь можно просто делать так :
Код:

mesh=LoadMesh("car\audi_body.b3d")
MoveEntity mesh,0,100,0
car_jode=jode_load("car\audi_body.ode",mesh,car_mass#,0.05,0.05,0.05)

(последние 3 числа - ето scale)

вообщем jode прогресирует как и мой проект B)

jimon 30.09.2005 21:20

выкладываю скрин редактора
правда он еще не готов :unsure:

SubZer0 30.09.2005 21:44

Цитата:

Originally posted by jimon+Sep 29 2005, 09:40 PM--><div class='quotetop'>ЦИТАТА(jimon @ Sep 29 2005, 09:40 PM)</div><div class='quotemain'>ps. теперь глюк - никак немогу понять какой формы делается цылиндр в ode
я пришол к выводу что ето вытянутый шар :unsure: [/b]

я с этим тоже еще не разбирался, там помоему в примере были такие фигуры типа капсул... мож такая фигня...

<!--QuoteBegin-jimon
@Sep 29 2005, 09:40 PM
ps2. в будущем (после того как совсем разберусь и доведу игру до играбельной стадии) думаю написать пару статей на тему "работа ode в тандеме с blitz3d"
:))
[/quote]Тебе тогда вообще цены не будет! B)

jimon 05.10.2005 20:25

и так у меня получилось совместить несколько геометрий в одном обекте ode !

вот код: (также смотрите скрин как ето выглядеть будет :)) )

Код:

test_space=ODE_dSimpleSpaceCreate(space)

space2%=space%
space%=0

j1=ODE_dJointCreateFixed%()

g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,0,51,0
EntityColor g\mesh,0,255,0
g\body = ODE_dBodyCreate()
g\geom = ODE_create_object("cube",g\body,g\mesh,1,1,1,1)
tode1=Handle(g)
body1=g\body

ODE_dSpaceAdd(test_space,g\geom)


g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,0,54,0
EntityColor g\mesh,0,255,0
g\body = ODE_dBodyCreate()
g\geom = ODE_create_object("cube",g\body,g\mesh,1,1,1,1)
tode2=Handle(g)
body2=g\body

ODE_dSpaceAdd(test_space,g\geom)

ODE_dJointAttach(j1,body1%,body2%)

ODE_dJointSetFixed(j1)

space%=space2%

попорядку что к чему:
1) делаем кучу TODEGeom обектов (но все геометрии присваюваются space = 0 ! ето обязательно)
2) создаем space для нашего 'обекта'
3) присойденяем к нашему space все обекты
4) создаем joint'ы типа fixed
5) присойденяем все обекты вот так : 1->2,2->3,3->4,4->5,5->...
6) фиксируем все joint'ы командой ODE_dJointSetFixed(joint)
7) радуемся :))

вообщем описание немного геморно... можно сразу создать свой space для обекта
и присваивать все геометрии нему, но ето уже потом зделаю... в jode

ps. мысли в слух : "а как ето было долго, пол часа времени и чашка кофе и песня 'я еду домой' океан ельзи "
ps2. все гениальное - просто ... сам уже к етому пришол раз пять
ps3. Final Fantasy 5 класная игра :))

jimon 06.10.2005 10:32

вот создаем обект посложнее :))
Код:

test_space=ODE_dSimpleSpaceCreate(space)

space2%=space%
space%=0


g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,0,51,0
EntityColor g\mesh,0,255,0
g\body = ODE_dBodyCreate()
g\geom = ODE_create_object("cube",g\body,g\mesh,1,1,1,1)
ODE_dSpaceAdd(test_space,g\geom)
tode1=Handle(g)
body1=g\body

g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,0,54,0
EntityColor g\mesh,0,255,0
g\body = ODE_dBodyCreate()
g\geom = ODE_create_object("cube",g\body,g\mesh,1,1,1,1)
ODE_dSpaceAdd(test_space,g\geom)
tode2=Handle(g)
body2=g\body

g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,0,51,3
EntityColor g\mesh,0,255,0
g\body = ODE_dBodyCreate()
g\geom = ODE_create_object("cube",g\body,g\mesh,1,1,1,1)
ODE_dSpaceAdd(test_space,g\geom)
tode3=Handle(g)
body3=g\body

g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,3,51,0
EntityColor g\mesh,0,255,0
g\body = ODE_dBodyCreate()
g\geom = ODE_create_object("cube",g\body,g\mesh,1,1,1,1)
ODE_dSpaceAdd(test_space,g\geom)
tode4=Handle(g)
body4=g\body

j1=ODE_dJointCreateFixed%()
ODE_dJointAttach(j1,body1%,body2%)
ODE_dJointSetFixed(j1)

j2=ODE_dJointCreateFixed%()
ODE_dJointAttach(j2,body2%,body3%)
ODE_dJointSetFixed(j2)

j3=ODE_dJointCreateFixed%()
ODE_dJointAttach(j3,body3%,body4%)
ODE_dJointSetFixed(j3)

space%=space2%


jimon 06.10.2005 12:32

предлагаю вам свежеиспеченый jode :))
(наверно заметели как я его часто обновляю - работа кипит)

и так что я зделал:
!!! теперь есть полная потдержка много геометрических обектов !!!

тоесть в файл-модель можно записать сколько угодно обектов ode
но раньше грузился только первый обект
но теперь все обекты грузятся! и сойденяются jointами...
короче я реализовал способ который описал раньше

представляю вам демку етого метода :))

управление - стрелочки,мыша,esc,(W)ireframe и левая кнопка мыши - показать\скрыть обекты debug'а

ps. там есть readme_jode.txt с описанием формата ode :))

jimon 06.10.2005 12:33

теперь опишу как метод работает:
в test.ode обекты расположены так сначала кубики 1 и 2 а потом сфера
поетому получается что кубики 1 и 2 сойденяются jointом и к кубику 2 присойденяется сфера

jimon 06.10.2005 19:24

вот и редактор подспел :))

пока только альфа
обясняю только то что делает кнопка 'a' - ето переключение на управление камерой

если что... спрашивайте

ps. а редактор всевото 30 кб получился... тест и то больше занимает :unsure:

jimon 06.10.2005 23:37

и так... первая версия протокола окончена B)
как респект себе - выпил пЫва :))

ps. я заметил баг в либе
но потомучто пока ее толком никто неиспользует
и проект быстро развивается - то исправления как такового небудет
вообщем потом зделаем :)
(баг в том что временые обекты не удаляются - забыл ето зделать)


todo :
вообщем то что я собираюсь реализовывать во второй версии протокола
1) надо зделать карту jointов
2) будем теперь применять разные jointы
3) зделаем редактор заново - а то етот уже в ацтое

reskator 18.10.2006 21:48

Re: BlitzODE.bb
 
Цитата:

Сообщение от jimon
выкладываю первую версию... для разминки
если чтото непонятно - спрашивайте ;)

а где выкладываешь? что-то не нашел:dontknow:

jimon 18.10.2006 23:13

Re: BlitzODE.bb
 
проект давно закрыт
если хоч могу тебе выложить то что осталось

ЛысыЙ_Чук-Иванчук 19.10.2006 18:10

Re: BlitzODE.bb
 
Я тоже Хочу, Хочу, Хочу.
Если можно с мелким описанием каманд:) .
И примерчик.;)

>O< >O< >O< >O< >O< >O< >O< >O< >O< >O< >O< >O< >O<

jimon 19.10.2006 19:00

Re: BlitzODE.bb
 
Вложений: 4
да не много осталось
собсно незнаю под какую ето BlitzODE
но либу вам надо качать в другом месте (у себя где то есть
но не нашол)

собсно сама либа и какая та моя игра
она не пашет, но по коду там можно чето понять
собсно гонки со стрельбой вроде


Часовой пояс GMT +4, время: 01:51.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot