forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Blitz3D (http://forum.boolean.name/forumdisplay.php?f=14)
-   -   jode 2 edition (http://forum.boolean.name/showthread.php?t=174)

jimon 07.10.2005 20:09

примерные спецификации (мысли в слух)

1)стандартный заголовок :
"jODEe
0.2v"
заголовок описан двумя строчками

2)int - количество обектов
3)обекты

4)int - количество joinов
5)joints


описание обекта :
byte - тип
int - id
3int - position
3int - scale
3int - rotate

описание joint'а варьируется от его типа
1) тип fixed (первый реализованый тип - он реализован еще в первой версии протокола)
int - id
int - id первого обекта
int - id второго обекта


размер файла минимум : 21 байт
каждый обект занимает 41 байт
joint типа fixed занимает 12 байт

jimon 08.10.2005 16:52

вот еще мой пост из серии изучаем ode :))

изучаем сочленение типа hinge (Сгибание)



теперь обясняю что такое точка сойденения (anchor) и что такой ось поворота (axis)

anchor ето точка сойденения обектов body 1 и body2
координаты точки задаются командой ODE_dJointSetHingeAnchor(joint,x#,y#,z#)
координаты задаются глобальные ! ето важно

тоесть мы получаем сообствено триугольник

----c
----/\
---/--\
--/----\
a/____\b

где a и b ето body 1 и body 2 соотвествено
и c ето anchor

длина отрезка ac и длина отрезка bc всегда const
может изменятся в очень маленьком диапазоне
если растояние сильно изменится - система или 'взорвется' или ode выдаст ошибку

растояние между ab может менятся от 0 до ac+bc



ось поворота тожет очень важный аргумент
она задается командой ODE_dJointSetHingeAxis (joint, x#, y#, z#)
значение x,y,z ето координаты вектора , начало вектора - точка anchor

ось что показана на рисунке можно задать вот так ODE_dJointSetHingeAxis (joint, 0, 1, 0)



теперь реализуем ето все в ode :))

Код:

test_space=ODE_dSimpleSpaceCreate(space)

space2%=space%
space%=0


g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,0,5,-20
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,15,-20
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)

joint2 = ODE_dJointCreateHinge()
ODE_dJointAttach joint2, body2, body1
ODE_dJointSetHingeAnchor(joint2, 0,10, -20)
ODE_dJointSetHingeAxis joint2, 1, 0, 0

space%=space2%

вот код обекта который я создал



сообствено обект ето два кубика ... один снизу и другой сверху
между ними (ровно посредине) находится точка сойденения (альфа - я так ее назвал)


jimon 08.10.2005 18:30

я офигел щас :o
експерементирую с jointами... убрал создание нового мира и зделал чтобы обекты все записывались к общему миру
и что? ОНО РАБОТАЕТ! тоесть получается что я ошибался нащот того что обязательно все привязывать к новому миру :( я в шоке :dontknow:
буду продолжать експеременты дальше



ps. написал примитивный дебагер етого вида сочленения
скрин в атаче

jimon 09.10.2005 17:06

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

joint типа ball (шарик в разьеме)



ето чтото типа hinge
только упрощеное :))

вообщем создается ето чудо командой ODE_dJointCreateBall
позиция точки задается командой ODE_dJointSetBallAnchor(joint,x#,y#,z#)
x,y,z также в глобальных координатах

вот так ето выглядит в jode :




вообщем основы формата я уже зделал
надо только написать загрузку всех типов соейденений и усе :))



так как мне в западло было писать отдельный пример
выкладываю все что есть по етому типу сойденения и нетолько
ps. не забывайте что space в примере - задать всем обектам rand вектора на правления и поворота

jimon 13.10.2005 19:37

и так новости :))

я закончил jode 2
он проходит бета тестирование

щас буду писать редактор моделей
и ... и пытатся продать его буржуям ;)

freeware версий небудет наверно, хотя с етим надо будет еще разобратся

SubZer0 14.10.2005 00:29

Цитата:

Originally posted by jimon@Oct 13 2005, 05:37 PM
... и пытатся продать его буржуям ;)
могу тебя огорчить, что ничего у тя с этим не выйдет, в условии распространения ОДЕ написано, что вы НЕ можете создавать свой физ движок на основе ОДЕ... а буржуи они такие, что все по законам... так что смотри, чтоб сам не попал. :)

jimon 14.10.2005 08:44

етоже над-делка над ode, а не переделка самого ode
покрайней мере я так думаю

BG-General 14.10.2005 10:31

Это тоже самое, что и Аркон когда-то враппер для Блитца делал. Так что я думаю, проканает.

jimon 14.10.2005 21:20

вот полчасика попарился
зделал модельку машинки в jode

управление T,G - вперед и назад (F,H влево и вправо только оно еще коряво работает)
q - показать\скрыть debug
w - wireframe
стрелочки и мышка - управляем камерой


файл, поскольку он является промежуточной версией, был удален из-за нехватки места на сервере

SubZer0 15.10.2005 05:37

Цитата:

Originally posted by jimon@Oct 14 2005, 07:20 PM
вот полчасика попарился
зделал модельку машинки в jode

управление T,G - вперед и назад (F,H влево и вправо только оно еще коряво работает)
q - показать\скрыть debug
w - wireframe
стрелочки и мышка - управляем камерой

гы!!! ржали с Impersonalis весь вечер!!! ну насмешил!! :lol: :lol: :lol:

impersonalis 15.10.2005 05:49

jimon, ты, конечно, не обижайся , но с физикой ты что-то напортачил =(

SubZer0 15.10.2005 05:52

Цитата:

Originally posted by impersonalis@Oct 15 2005, 03:49 AM
jimon, ты, конечно, не обижайся , но с физикой ты что-то напортачил =(
ага, такое ощущение, что у машины двигатель к колесу карданом прикручен а к корпусу его прикрутить забыли... :)

jimon 15.10.2005 08:50

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

притом учитывай кубик сверху

вот и получилось фигня :)
да тут надо только с параметрами jointов разобратся
и вот с етим :
ODE_dJointSetHinge2Param(joint[i], dParamSuspensionERP, .3)
ODE_dJointSetHinge2Param(joint[i], dParamSuspensionCFM, .065)


2 саб :
то что ты говориш получается не из-за самой физики а расположения колес от точки сойденения - слишком они далеко , вот и получается фигня
тут же колеса с корпусом сойденены hinge-2 joint :))

jimon 15.10.2005 17:39

ну что же :))
разобрался я с управлением, поворотами, подвеской

отличия от предыдущего теста:
+центр сочленения в центре колес
+поменял оси сочленения
+зделал поворот
+вставил обработку угловых сил обектов машинки
+переделал слегка машинку
+машинка потежелее стала (100 кг корпус, по 10 кг каждое колесо)
+все пашет :))

управление тоже


файл, поскольку он является промежуточной версией, был удален из-за нехватки места на сервере

SubZer0 15.10.2005 23:34

Цитата:

Originally posted by jimon@Oct 15 2005, 03:39 PM
ну что же :))
разобрался я с управлением, поворотами, подвеской

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

:super:

jimon 15.10.2005 23:55

ну чтоже саб... зделал я тебе примерчик :))
короче качай архив


вообщем вопросы суда кидай


ps. только буржуям ето не давать! B)

SubZer0 16.10.2005 00:53

буржуи конечно-же мастдай!!!

вопрос такой:

1. чтоб быстрей разгонялась, там колеса нужно крутить не скоростью а крутящим моментом (я чесно сказать сам хз как, просто от умных людей слышал).

1.a чтоб ее меньше заносило, тем более не закручивало .

1.б чтоб не вставала в дыбы при разгоне.

2. чтоб видно было как колеса поворачиваются, сделай их целиндрами, а то бывает что поворачиваешь в сторону, а машина типа тормозит, предполагаю что колеса на 90 градусов поворачиваются.

:)

jimon 16.10.2005 13:26

1. там есть ограничении скорости :))
ODE_dJointSetHinge2Param(joint[i],dParamFMax2, 20.0)
чтобы еще бысрее - а ты ускорение приложи большое :) вот и будет тебе быстро

1a ну незнаю я как ето делать... ее по идее физики заность должно

1b подредакртируй жосткость подвески

2. зделаю

jimon 16.10.2005 18:00

Код:

cyl=CreateCylinder()
ScaleEntity cyl,2,2,1
RotateMesh cyl ,90,0,0
jODE_atach_mesh(test,"test1",CopyEntity(cyl))
jODE_atach_mesh(test,"test2",CopyEntity(cyl))
jODE_atach_mesh(test,"test3",CopyEntity(cyl))
jODE_atach_mesh(test,"test4",CopyEntity(cyl))
FreeEntity cyl

вот твоя прозьба с цылиндрами
ps. вставь ето гдето до главного цыкла
я лично ето написал перед созданием levelа :)

SubZer0 17.10.2005 02:37

я вот именно и просил тюнинг физики, когда просил тебя замутить мне примерчик :rolleyes: , а простой пример я и сам могу сделать :)

там нужно какието другие силы задействовать...

jimon 17.10.2005 08:42

тут тюнинг параметров делать надо :)

jimon 17.10.2005 22:08

вот
короче управление стрелочками
и напишите сколько у вас выдает фпс и сколько ode...
и если баги будут - постите

если попросите - выложу исходники

axel186 18.10.2005 04:18

КЛЁВО, тоже надо будет как нибудь поучить :) (если получится :))

Очень понравилось!

у меня ФПС 12

SubZer0 18.10.2005 04:42

у меня в среднем 60... если ничего не экране нет, то 63, если есть то может и до 58 опуститься... :)

jimon 18.10.2005 08:41

а сколько ode времени занимает ?
просто мне надо нащупать предел, сколько можно обектов вставлять в ode :)

Diplomat 18.10.2005 13:46

У меня ФПС не ниже 264. В основном 300-320.
ОДЕ- 1-2 мс. На вид если чисто субьективно- где-то 1.213-1.439мс. :lol:
Демка руль. :)
Только у меня не получилось загнать машину в занос... Т.е. жму на максимальной скорости поворот и торможение, а она почему-то... поворачивает и тормозится!!:)) А должна по идее идти юзом.

P.S. Кстати, что такое этот синий воксель в центре карты?

BG-General 18.10.2005 16:15

У меня фпс 137, оде скачет, но отчетливо видно 4 мс. Кстати, зачем ты такую большую текстуру запихал, да еще и не степень двойки :)

jimon 18.10.2005 19:21

тестура ацтой :))

2diplomat
ето не воксел
ето сфера с z-buffer -1
я с ее помощью центр пространтсва помечаю - удобно

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

axel186 18.10.2005 19:47

У меня есть очень тупой вопрос :)
Что такое фпс (как я понел это вроде мощность компа)?

SubZer0 18.10.2005 20:04

Цитата:

Originally posted by axel186@Oct 18 2005, 05:47 PM
У меня есть очень тупой вопрос :)
Что такое фпс (как я понел это вроде мощность компа)?

Frame Per Second (вроде так) - что означало бы в переводе смысла, сколько раз мир успевает обновляться в течение одной секунды (сколько раз пройдет главный цикл программы)... ессно это прямиком зависит от мощности компа...
:)

CJ КАКТУС 18.10.2005 23:35

Цитата:

вот
короче управление стрелочками
и напишите сколько у вас выдает фпс и сколько ode...
и если баги будут - постите

Хм...Хорошо просчтано :super:

axel186 19.10.2005 00:37

Цитата:

Frame Per Second (вроде так) - что означало бы в переводе смысла, сколько раз мир успевает обновляться в течение одной секунды (сколько раз пройдет главный цикл программы)... ессно это прямиком зависит от мощности компа...

ЯСНО :) Тупой у меня комп :)

impersonalis 19.10.2005 01:00

Цитата:

Originally posted by SubZer0@Oct 18 2005, 06:04 PM

Frame Per Second (вроде так) - ...

Без обид:
Frames Per Second ;)

jimon 20.10.2005 22:48

возвращаяс в реальность :o

так как я делаю по задумке более мение аркадный симулятор
а ode выдает полный real... делаем unreal B)

и так главное изменение - система поворота колес - никакой свободы для ode недаем
потом надо стабилизировать заднии колеса (на 500км\час у меня их оторвало нахрен)
повозится с тормозами (формула-1 и то тормозит иногда :lol: )
немного помучатся с подвеской
помучать трение
помучать массы
помучать... тестирование :))

ps. заднего хода нету - стрелочка в низ ето тормоз
пробел - ручник

ps2. тест на скорость ... потому нету никаких там кубиков и прочее

ps3. линия вверху - дебаг X,Z сил действующих на корпус... ето чтобы было понятно куда машинку тащит :))

jimon 20.10.2005 23:38

по прозьбе impersonalis'а
патч : добавляет 200 кубиков
расположить в папке з демкой и запустить
весит 74 кб

jimon 20.10.2005 23:39

по прозьбе impersonalis'а
полные исходники которые есть на 20.10.2005 21:38

jimon 09.11.2005 22:35

ну чтоже
я не смог найти пароль к архиву исходников blitz ode :(

прийдется писать свой врапер

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

есть уже некоторые наработки - зделал дебаг окно, зделал основы библеотеки :)

думаю в будущем (через недельку или две) уже буду иметь хоть чтото

основной принцип врапера - ето то что он делается как отдельная dll
тоже самое было с tokamak, такой вариант нетребует запарки с кодом самого ode
и делает работу удобной - все тестирование можно проводить прямо при разработке dll
ето возможно потомучто purebasic имеет 3д двиг :)

сам врапер будет поначалу open source
но когда дойду до уже хороших,стабильных версий - он станет закрытым
или распространятся по GNUL лицензии (надо подумать)
но идинственое что явно извесно - он будет freeware

также крутится идея внедрить модели в сам врапер
подумаю нащот реализации чтения моделей 3ds и b3d

из того под что я делаю врапер :

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

вот оно! - можно импортировать анимированую модель прямо в ode и обновлять положение вершин

ps. вот что оно - серьозно подойти к разработке проекта
если бы я плюнулбы на ету 'маленькую ошибку' то в середине,или хуже - в конце проекта
ета ошибка свелаб на нет всю проделаную работу

Вывод : Мелкая ошибка в большом проекте - снежний ком, сначала пофиг, потом создает трудности,

потом проект просто умирает


ps2. врапер так и называется - Jimon ODE

alcosholik 24.11.2005 01:50

http://www.deviouscodeworks.co.uk/jv-ode.html
Почти jode :)

jimon 24.11.2005 22:35

хм... а помойму совершено другое ;)

Maxus 17.02.2006 01:54

А Куда пропал весь этот архивчик.

jimon 18.02.2006 15:05

любая информация по jode для блица теперь не доступна для паблика (халявщики блин... )

для того чтобы получить инфу или сам jode обращайтесь ЛИЧНО ко мне, по icq или e-mailу

проект закрыт

Maxus 21.02.2006 01:43

А не надоело грубить???
Не строй из себя гения программинга...
Если уж делаешь на всеобщее обозрение, то выкладывай.

jimon 21.02.2006 22:32

обрати внимание на дату поста когда она выкладывалась ?
и все ето время нею никто неинтерисовался

так вот... кому она надо ? усе... проект закрыт
если надо ... вышлю то что осталось (только сама либа без примеров) на мыло... там как хочеш сней возись, только &copy; незабывай :)

Maxus 22.02.2006 02:01

Цитата:

Originally posted by jimon@21.2.2006, 22:32
обрати внимание на дату поста когда она выкладывалась ?
и все ето время нею никто неинтерисовался

так вот... кому она надо ? усе... проект закрыт
если надо ... вышлю то что осталось (только сама либа без примеров) на мыло... там как хочеш сней возись, только © незабывай :)

Кидай на мыло...
Просто я смотрю ты немного с освоением Си зазвездился.


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

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