Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Вниз

GLscene colisions   Найти похожие ветки 

 
CraKer   (2004-04-22 15:07) [0]

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


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

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


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

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

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

но это криво

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

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


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

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

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


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

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


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

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


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

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

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

вот....


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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


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

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

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

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


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

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


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

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


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

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


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

И еще про коллизии в 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"
Помогите убогому найти это самую линку... :( С какой стороны сферы не разглядываю все никак понять не могу каким местом они с коллизион менеджером взаимодействуют...


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

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


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

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



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.046 c
1-1090685460
Mental_Ray
2004-07-24 20:11
2004.08.08
работе с TThread


14-1090230483
Turbid
2004-07-19 13:48
2004.08.08
RxLib


14-1090704176
Саша
2004-07-25 01:22
2004.08.08
Библия Delphi


9-1082126348
Xerx
2004-04-16 18:39
2004.08.08
быстрый доступ к пикселам поверхности


3-1089697360
Nero
2004-07-13 09:42
2004.08.08
Создание БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский