|
|
|
Канал Игры Мечты: «Поиск и обработка столкновений» |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
Как это реализовано в Х3?
Ведь даже современные крутейшие физические движки не позволяют просчитывать столкновения и взаимодействия двух произвольных не статических геометрий, без использования обволакивания (convex hull).
добавлено спустя 2 минуты:
А в Х3 пожалуйста — можно легко и не принужденно летать на истребителе между элементами какого-нибудь Xenon K
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
Last edited by DIMOSUS.X on 01:43 07-04-2013; edited 1 time in total |
|
|
Kosmonavt
165 EGP
  Рейтинг канала: 1(3) : 35 Posts: 748 Location: Дубна Joined: 04 Jul 2003
 |
|
Да ладно, такое много где встречается. Вот например в battlefield 3 есть вертолеты с "дыркой" через которую пролетают пули и ракеты. И не обязательно делать движок умеющий просчитывать невыпуклые геометрические примитивы. Можно ведь с помошью выпуклых создать любой обьект.
_________________ Самая elit-ная игра - жизнь. Первое задание в ней - построить космический корабль. |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
Пули и ракеты как таковые не имеют физического тела, да и колизии ищутся не с физическим телом вертолета, а с его BSP.
Составные объекты это конечно один из вариантов выхода, но вопервых это дополнительная нагрузка художникам, а во вторых интересует именно реализация в Х3.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
У меня пока только одна идея как сделать подобное.
Перво-наперво искать пересечения AABB двух тел. Далее перевести KD-tree одного, в пространство другого и затем перебором искать вхождения AABB самых нижних листьев, без проверки самих треугольников.
Топорно, но для космоса может сгодится.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Guest
2076 EGP
              Рейтинг канала: 5(167) : 376 Posts: 27975 Location: Моск. Joined: 12 Oct 2004
 |
|
DIMOSUS.X wrote: |
Как это реализовано в Х3?
|
Вангую прокси. С большой долей вероятности - многоуровневые, возможно с доптесселяцией возле игрока.
Первичное обраужение всё равно через боунд-сферу или боунд-бокс. Так быстрее и разгружает обсчёт кадра.
добавлено спустя 15 секунд:
Или тебе конкретно алгоритмы надо?
добавлено спустя 4 минуты:
DIMOSUS.X wrote: |
Пули и ракеты как таковые не имеют физического тела, да и колизии ищутся не с физическим телом вертолета, а с его BSP.
Составные объекты это конечно один из вариантов выхода, но вопервых это дополнительная нагрузка художникам, а во вторых интересует именно реализация в Х3.
|
А. Нет, художникам это не нагрузка.
Составной коллижен-меш - тоже не нагрузка. Плюс он может иметь дыры (хотя в этом случае нельзя считать такой меш односторонним, т.к. луч может столкнуться с ним изнутри).
З.Ы.: специально не занимался, вышесказанное может быть бнёй.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Last edited by Guest on 01:52 08-04-2013; edited 3 times in total |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) : 102 Posts: 1441 Заблокирован Location: Seattle Joined: 25 Feb 2006
 |
|
DIMOSUS.X wrote: |
Ведь даже современные крутейшие физические движки не позволяют просчитывать столкновения и взаимодействия двух произвольных не статических геометрий, без использования обволакивания (convex hull).
|
Даже довольно старые плохие физ движки умеют это делать - делают они это через trimesh (Triangle Mesh). Готов поспорить делают через trimesh и в X3.
добавлено спустя 2 минуты:
И да, художникам дополнительная нагрузка - но если на проекте делают lod'ы (а их уж точно нужно делать в играх где объект может удалиться достаточно далеко), то collision trimesh получается нахаляву из менее детального lod'а.
Ну и давно уже есть такая штука как auto-lod - генерация оных автоматом хоть в run-time.
добавлено спустя 6 минут:
DIMOSUS.X wrote: |
не статических геометрий
|
А, стоп. НЕ статических trimesh нет вроде пока что.
Но чет я не пойму - где в Ксеноне К "не статическая геометрия"
_________________ MOV topka, C++
Last edited by Jurec on 16:52 09-04-2013; edited 2 times in total |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
Статическая геометрия в понятиях физики — это скажем терейн, который заморожен и не реагирует на приложение к нему каких-либо сил.
добавлено спустя 8 минут:
Не статическая геометрия — имел в виду произвольные наборы треугольников, без обтягивания их convex hull
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
Last edited by DIMOSUS.X on 17:59 09-04-2013; edited 1 time in total |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) : 102 Posts: 1441 Заблокирован Location: Seattle Joined: 25 Feb 2006
 |
|
DIMOSUS.X wrote: |
Не статическая геометрия — имел в виду произвольные наборы треугольников, без обтягивания их convex hull
|
Тогда trimesh. Если эти треугольники не изменять во времени (ессно, можно трансформацию применять на весь trimesh)
_________________ MOV topka, C++
Last edited by Jurec on 16:03 10-04-2013; edited 1 time in total |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
Тогда как два trimesh должны взаимодействовать друг с другом?
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
В Х3 используется что-то гораздо хитрее...
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) : 102 Posts: 1441 Заблокирован Location: Seattle Joined: 25 Feb 2006
 |
|
Я чего -то не пойму в чем проблема-то? И чего в х3 используется что-то хитрое?
trimesh vs trimesh коллизия просчитывается физдвижком. Не пойму про "как два trimesh должны взаимодействовать друг с другом? "
_________________ MOV topka, C++ |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
Jurec wrote: |
trimesh vs trimesh коллизия просчитывается физдвижком.
|
Ссылку в студию
trimesh, как динамическое тело с массой, не может взаимодействовать с другими телами. Точнее может, но тогда даже два таких колизящихся тела полностью убивают процессорное время.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) : 102 Posts: 1441 Заблокирован Location: Seattle Joined: 25 Feb 2006
 |
|
Ты неверно меня понял. На примере х3:
Статический trimesh на станции.
Динамический объект на корабле, для просчета быстрых динамических объектов (капсула, например)
если trimesh станции контактирует с капсулой - можно посчитать их пересечение с нужной тебе точностью.
Ссылку на что ты хочешь? На физ движок? Или на алгоритмы из narrow phase двига?
_________________ MOV topka, C++ |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) : 14 Posts: 1426
Joined: 27 Jul 2005
 |
|
DIMOSUS.X wrote: |
Ссылку в студию
|
что-то типа такого наверное
_________________ This is what you get ...
(c) Radiohead |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
Jurec wrote: |
Статический trimesh на станции.
|
В Х3 они не статические — станцию можно тащить силовым лучом и при этом сшибать ей пролетающие мимо корабли.
Я хорошо знаю как работает физика в современных играх.
Но вот как это работает в Х3 мне не понятно...
Sh.Tac. wrote: |
что-то типа такого наверное
|
Эмм... А где там trimesh vs trimesh?
добавлено спустя 2 минуты:
Не использует Х3 стандартные подходы. Нет там ни Convex shapes, ни Compoind shapes...
добавлено спустя 2 минуты:
Но точно знаю что для просчета физики и попаданий снарядов используется самый младший лод.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
Last edited by DIMOSUS.X on 00:08 11-04-2013; edited 2 times in total |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) : 102 Posts: 1441 Заблокирован Location: Seattle Joined: 25 Feb 2006
 |
|
DIMOSUS.X wrote: |
самый младший лод
|
То что я и говорил. А он выпуклый? Если из такого сделать Convex объект или множество Convex объектов - все будет работать и тебя не смущать
_________________ MOV topka, C++ |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
Он не выпуклый — да же оригинальные лоды моделей в Х3 сделаны топором, точнее объединением близко расположенных вершин без удаления выступающих элементов.
Повторюсь — как это делается я знаю, и в своем движке использую Convex shapes объединяемые в Compoind shapes.
Просто для общего развития хочу знать как это работает в Х3. Не дает мне покоя мысль, что не могу додуматься до их решения
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) : 102 Posts: 1441 Заблокирован Location: Seattle Joined: 25 Feb 2006
 |
|
Ну не знаю - спроси на форуме bullet'а, например )
_________________ MOV topka, C++ |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) : 188 Posts: 3252 Location: Vilnius/Minsk Joined: 06 Aug 2008
 |
|
Уже спрашивал, правда не совсем там. Мне рассказали, что пока ни один физический движок не может обеспечить приемлемую производительность в случае использования для динамических тел trimesh шейпов...
Но как-то же это работает в Х3
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) : 102 Posts: 1441 Заблокирован Location: Seattle Joined: 25 Feb 2006
 |
|
может они конвертируют последний лод в набор Convex'ов
_________________ MOV topka, C++
Last edited by Jurec on 10:41 11-04-2013; edited 2 times in total |
|
|
|
|
|
Канал Игры Мечты: «Поиск и обработка столкновений» |
|