|
Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново... |
26.09.2005, 00:00
|
#1
|
|
так как оригинальная либа глючная и неудобная то я начинаю разрабатывать свою версию .. так сказать jimon modification )
вообщем в большинстве глюков ode я разобрался
первый и главный глюк - нельзя в ode зделать нормальную колозию между обектами создаными с помощью trimesh
вторые числятся к глюкам с соотнощению размеров
также есть глюки с определением векторов отражения и др
выкладываю первую версию... для разминки
если чтото непонятно - спрашивайте
|
|
|
29.09.2005, 23:40
|
#2
|
|
продолжая тему оптимизации и изучения ode :
теперь моя модификация ode будет называтся jimon ODE - jODE
вообщем я немного модифицировал blitzode.bb
добавил (пока примитивную) функцию подгрузки физических моделей своего формата
и зделал пример смотрите атач ... файл там всевото 4 килобайта
вообщем уже сейчас существует редактор физических моделей
но пока он примитивный
несоблюдает некоторых правил стандарта
и глючит иногда )
(я редактор взял от проекта Xblitz2 - моего шутера)
ps. теперь глюк - никак немогу понять какой формы делается цылиндр в ode
я пришол к выводу что ето вытянутый шар
ps2. в будущем (после того как совсем разберусь и доведу игру до играбельной стадии) думаю написать пару статей на тему "работа ode в тандеме с blitz3d"
)
|
|
|
30.09.2005, 21:11
|
#3
|
|
новая версия 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 прогресирует как и мой проект
|
|
|
30.09.2005, 21:20
|
#4
|
|
выкладываю скрин редактора
правда он еще не готов
|
|
|
30.09.2005, 21:44
|
#5
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
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
я пришол к выводу что ето вытянутый шар [/b]
|
я с этим тоже еще не разбирался, там помоему в примере были такие фигуры типа капсул... мож такая фигня...
<!--QuoteBegin-jimon@Sep 29 2005, 09:40 PM
ps2. в будущем (после того как совсем разберусь и доведу игру до играбельной стадии) думаю написать пару статей на тему "работа ode в тандеме с blitz3d"
)[/quote]Тебе тогда вообще цены не будет!
__________________
Как минимум я помог многим (с)
|
(Offline)
|
|
05.10.2005, 20:25
|
#6
|
|
и так у меня получилось совместить несколько геометрий в одном обекте 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 класная игра )
|
|
|
06.10.2005, 10:32
|
#7
|
|
вот создаем обект посложнее )
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%
|
|
|
06.10.2005, 12:32
|
#8
|
|
предлагаю вам свежеиспеченый jode )
(наверно заметели как я его часто обновляю - работа кипит)
и так что я зделал:
теперь есть полная потдержка много геометрических обектов
тоесть в файл-модель можно записать сколько угодно обектов ode
но раньше грузился только первый обект
но теперь все обекты грузятся! и сойденяются jointами...
короче я реализовал способ который описал раньше
представляю вам демку етого метода )
управление - стрелочки,мыша,esc,(W)ireframe и левая кнопка мыши - показать\скрыть обекты debug'а
ps. там есть readme_jode.txt с описанием формата ode )
|
|
|
06.10.2005, 12:33
|
#9
|
|
теперь опишу как метод работает:
в test.ode обекты расположены так сначала кубики 1 и 2 а потом сфера
поетому получается что кубики 1 и 2 сойденяются jointом и к кубику 2 присойденяется сфера
|
|
|
06.10.2005, 19:24
|
#10
|
|
вот и редактор подспел )
пока только альфа
обясняю только то что делает кнопка 'a' - ето переключение на управление камерой
если что... спрашивайте
ps. а редактор всевото 30 кб получился... тест и то больше занимает
|
|
|
06.10.2005, 23:37
|
#11
|
|
и так... первая версия протокола окончена
как респект себе - выпил пЫва )
ps. я заметил баг в либе
но потомучто пока ее толком никто неиспользует
и проект быстро развивается - то исправления как такового небудет
вообщем потом зделаем
(баг в том что временые обекты не удаляются - забыл ето зделать)
todo :
вообщем то что я собираюсь реализовывать во второй версии протокола
1) надо зделать карту jointов
2) будем теперь применять разные jointы
3) зделаем редактор заново - а то етот уже в ацтое
|
|
|
18.10.2006, 21:48
|
#12
|
AnyKey`щик
Регистрация: 04.09.2006
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: BlitzODE.bb
Сообщение от jimon
выкладываю первую версию... для разминки
если чтото непонятно - спрашивайте
|
а где выкладываешь? что-то не нашел
|
(Offline)
|
|
18.10.2006, 23:13
|
#13
|
|
Re: BlitzODE.bb
проект давно закрыт
если хоч могу тебе выложить то что осталось
|
|
|
19.10.2006, 18:10
|
#14
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: BlitzODE.bb
|
(Offline)
|
|
19.10.2006, 19:00
|
#15
|
|
Re: BlitzODE.bb
да не много осталось
собсно незнаю под какую ето BlitzODE
но либу вам надо качать в другом месте (у себя где то есть
но не нашол)
собсно сама либа и какая та моя игра
она не пашет, но по коду там можно чето понять
собсно гонки со стрельбой вроде
|
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:49.
|