Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / [Bullet Physics] Коллизия у моделей

[Bullet Physics] Коллизия у моделей

Поделиться

Страницы: 1 2 Следующая

zombihelloПостоялецwww4 июля 201720:34#0
Привет, ребят. В ходе внедрения физики в мой движок я столкнулся с проблемой на которую
не нашел должного ответа, помогите разобраться в этом деле, буду признателен.

Какой лучше collision shape прикручивать моделям? В интернете находил совет что лучше
для персонажей использовать примитивы, а для моделей декорации shape  который
описывал бы эту модель. Нашел, я значит, класс с помощью которого это можно сделать btConvexHullShape,
но не понял как с этим чудовищем работать и правильно ли это? А вот по поводу персонажей.
Если им прикручивать примитивы Bullet Physics, то как просчитать габариты (длина, высота и т.д) этой модели
(чтобы знать какого размера должен быть collision shape).

Помогите пожалуйста...

iKestПостоялецwww4 июля 201721:03#1
Насколько я знаю для персов вначале назначают обычно капсулу (размеры по вертаксам рассчитывают). Если срабатывает пересечение с капсулой, то уже считают коллизии, где шейп назначен каждой кости. Ещё где-то видел папер, где для перса хитро назначаются шейпы в виде сфер - быстродействие было просто запредельное.
zombihelloПостоялецwww4 июля 201721:13#2
iKest
> Насколько я знаю для персов вначале назначают обычно капсулу (размеры по
> вертаксам рассчитывают).
А можете подробнее объяснить алгоритм расчета размеров у моделей? Ибо я слабо представляю
как это можно реализовать.
zombihelloПостоялецwww4 июля 201722:52#3
zombihello
> (размеры по вертаксам рассчитывают)
Допустим, у меня есть модель сферы и мне надо найти радиус ее, как тогда с этим быть?
iKestПостоялецwww4 июля 201723:11#4
Либо сразу задают крайние точки в каждом кадре анимации, либо по вертаксам рассчитывают min max плюс накидка на скиннинг (пляшут, я думаю, от пивота). имхо

Правка: 4 июля 2017 23:12

SuslikМодераторwww5 июля 20179:10#5
zombihello
физическое представление всех игровых объектов вручную устанавливают художники при создании ассетов. разумеется, по модели автомобиля невозможно автоматически создать его физическое представление, аналогично и с персонажами.
iKestПостоялецwww5 июля 201711:00#6
Suslik
Это что за бред? По аналогии - при рендере ограничивающие  боундинги тоже расставляют художники, потому-то по модели невозможно определить как она трейситься вся будет?
SuslikМодераторwww5 июля 201711:07#7
iKest
баундинг бокс или capsule можно легко посчитать по мешу. рэгдолл с учётом всей геометрии и джойнтов — нет.

Правка: 5 июля 2017 11:08

zombihelloПостоялецwww5 июля 201719:19#8
Suslik
> физическое представление всех игровых объектов вручную устанавливают художники
> при создании ассетов
Спасибо, я теперь кажется понял как делать колизии для моделей (+ помогла статейка от valve https://developer.valvesoftware.com/wiki/Collision_model , прояснило что к чему).
Можете, пожалуйста, подсказать каким лучше классом пользоваться в Bullet Physics для создания collision mesh'a (т.е кому скармливать физическую модель) . Для этих целей btConvexHullShape пойдет или какой-то другой класс лучше
использовать?
SuslikМодераторwww5 июля 201719:43#9
zombihello
> Для этих целей btConvexHullShape пойдет или какой-то другой класс лучше
> использовать?
зависит от того, какую именно геометрию ты будешь аппроксимировать и что тебе важнее: точность или скорость. например, персонажей обычно аппроксимируют капсулами, потому что они быстро считаются(буллетом в смысле) и неплохо совпадают с органическими формами. неорганику обычно описывают боксами, опять же из соображений производительности, либо convex shape'ами.

Правка: 5 июля 2017 19:44

zombihelloПостоялецwww5 июля 201721:15#10
Suslik
Смотрите, а как правильно поступать с коллизией у анимированных моделей (динамических), как при таком раскладе быть? Не хочется просто делать
лишние расчеты
SuslikМодераторwww5 июля 201722:01#11
сначала тебе захочется делать анимировать геометрию коллизий, потом тебе захочется, чтобы физика влияла на анимацию. ты сразу определись, чего ты хочешь от начала и до конца и тогда уже думай, как это решать, потому что способы и сложность задач будут, соответственно, совершенно разные. от одной капсулы на персонажа до сложнейшей системы блендинга анимации и физики вроде euphoria.
iKestПостоялецwww6 июля 20178:48#12
Ещё раз повторюсь - вначале проверяются грубые примитивы(один на всю модель). Затем трейсятся уже меши. На мешах боундиги в точке контакта строятся автоматом в виде дерева(например методом ограничивающих сфер).

Правка: 6 июля 2017 8:49

SuslikМодераторwww8 июля 201713:12#13
iKest
приведи пример хотя бы одного современного ААА-проекта, где для персонажей используется дерево bounding spheres и физика считается для каждого треугольника.

Правка: 8 июля 2017 13:15

zombihelloПостоялецwww11 июля 20171:57#14
Ребят, спасибо всем за помощь. У меня все таки получилось сделать коллизию для мешей (додумался все же). По правде говоря я до этого допер еще неделю назад, но
просто времени не было чтобы отписаться. И да, вот что у меня получилось.

Коллизия у мешей | [Bullet Physics] Коллизия у моделей

Страницы: 1 2 Следующая

/ Форум / Программирование игр / Физика

2001—2017 © GameDev.ru — Разработка игр