Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

GLscene colisions [Delphi, Windows]


CraKer ©   (2004-04-22 15:07:00) 

Есть ли у кого пример или просто код, описывающий правильные коллизии в ГЛсцене(стандартные примеры - не то), например просто Actor который при столкновении со стенкой - останавливается, буду оч благодарен, актор не должен застревать в стене..


CraKerX   (2004-04-26 20:25:00) [1]

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


КиТаЯц   (2004-04-26 13:58:00) [2]

Все, разобрался (спасибо добрым людям)! у DummyCube есть Behaviours, а там итемсы... в них все и сидит :)


КиТаЯц   (2004-04-26 09:12:00) [3]

И еще про коллизии в GLScene...
Там есть простой пример collision\sphere
Написано: "Ultra-basic collision detection sample. Two sphere have been placed in the scene, both have a TGLBCollision behaviour linked to the collision manager component"Что я понимаю как " Самый базовый пример коллизии. Две сферы в сцене, и обе имеют линку типа TGLBCollision на компонент collision manager"
Помогите убогому найти это самую линку... :( С какой стороны сферы не разглядываю все никак понять не могу каким местом они с коллизион менеджером взаимодействуют...


CraKerX   (2004-04-25 16:10:00) [4]

Могу дать исходники коллижнов, специально для GLscene, ну всмысле написаные уже под него.. они слегонца кривые, зато максимально сокращенные...


Yar-Com   (2004-04-24 08:44:00) [5]

Можно и так делать но придется внести ограничение по максимальной скорости движения.


Vertex   (2004-04-23 22:45:00) [6]

А колижн бокс или если полигонально просчитываете, незя ли увеличить? Типа если простой объект сфера, то коллизию просчитывать не с ее радиуса, а с радиуса+дельта. А потом просто подпускать еще некоторое приращение (вычисленное с учетом той же дельты), и останавливать если нужна точность коллизии или сразу тормозиться?


Yar-Com   (2004-04-23 12:34:00) [7]

ну все выслал всем...

2 Думкин: на счет статейки или фака ты конечно прав но есть некоторые проблеммы с изложением материала как все это оформить???

ну и конечно метод имеет глюк еще не проверял на сколько этот глюк страшен :) но он есть :) связано это с тем что в процессе проверки столкновения временной шаг на текущей итерации может измениться т.е. мир на время хоть и на очень короткое замирает ) хотя я визуально отличия не заметил )


CraKer   (2004-04-23 12:03:00) [8]

Снова ждемс...


Yar-Com   (2004-04-23 08:33:00) [9]

аааа понял, у меня проблемма с условиями.

не могу правильно определить действительно ли шар пересек плоскость. щас нарисую на бумажке и доделаю.


Yar-Com   (2004-04-23 08:21:00) [10]

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


КиТаЯц   (2004-04-23 07:50:00) [11]

2 Yar-Com   (22.04.04 17:50) [7]
Мне скинь dunin@hotmail.ru Спасибо.


Думкин   (2004-04-23 06:30:00) [12]

Сабжем никогда не интерисовался, но по поводу
> Yar-Com   (22.04.04 17:50) [7]
скажу.
Если это действительно ценно для участников - то лучше или в базу готовых решений кидать или в виде статьи, или ЧАВО, или на своем сайте положить, но совсем не устраивать мыльную рассылку.
Удачи.


CraKer   (2004-04-22 20:52:00) [13]

Исходник - конечно надо! mipstudio@fromru.com


Yar-Com   (2004-04-22 17:50:00) [14]

если нужен исходник то без проблем тока почищу от мусора и седня кому надо вышлю...


Yar-Com   (2004-04-22 17:48:00) [15]

сделал.
вобщем у меня все движущиеся объекты перемещаются с шагом времени dt по закону P(t+dt) = P(t) + V*dt

если шар пересекся с плоскостью я вычисляю сначала ту точку в которой шар должен был бы остановиться еслиб это была не виртуальная плоскость а стена :) обозначим эту точку буквой I дальше вычисляю новое значение шага времени dT по формуле:  
dT = |I - P(t)| / |V|;
затем откатываю систему на шаг назад, на момент перед столкновением и снова двигаю всю систему но уже по dT

вот....


Yar-Com   (2004-04-22 16:06:00) [16]

ну можно еще считать где объект должен находится на самом деле и помещать его туда...


CraKer   (2004-04-22 15:52:00) [17]

Ок буду ждать, хотя есть сомнение, что нужно векторами все это просчитывать...


Yar-Com   (2004-04-22 15:37:00) [18]

я как раз сейчас в реальном маштабе времени ) этот кусок и пишу...

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


Yar-Com   (2004-04-22 15:34:00) [19]

задача не очень простая и вариантов решения может быть несколько

самый простой: после определения момента столкновения вернуть объект на предыдущую позицию...

но это криво

есть еще варианты но...

вы как объекты двигаете как выглядит цикл перемещения объектов? привязка ко времени есть? можно откатывать объект назад и уменьшать временной шаг и пробовать колизию еще раз и так пока нормально не определиться точка столкновения......


КиТаЯц   (2004-04-22 15:13:00) [20]

2 CraKer
Найдеш ответ - скинь на мыло мне плиз. Ну, если не жалко будет. Спасибо. :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо