Войти
ПрограммированиеФорумОбщее

Автоматическое создание конвексов для сложной модели (2 стр)

Страницы: 1 2 3 Следующая »
#15
8:16, 18 ноя 2021

Suslik
> даже разбить просто меш на просто конвексы — вовсе не такая тривиальная задача,
> как тебе могло показаться.
Да, я знаю, что это очень нетривиальная задача, поэтому и указал, что:

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

2. Если есть пересечение конвекса и мешем, то конвекс также надо разбивать.

Aslan
> Надо сверять не только соседние треугольники, а вообще весь конвекс должен быть
> по внутреннюю сторону от каждой грани

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


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

#16
(Правка: 8:18) 8:18, 18 ноя 2021

samrrr
> Физика любит только конвексы.

А частицы? Для разрушаемых или деформируемых объектов вполне подойдут.

#17
13:42, 18 ноя 2021

betauser
Наводящий вопрос - как ты выталкиваешь конвексы?

samrrr
docs к чему?

Morgend
> Собственно обход треугольников и нужен, чтобы выявить выпуклые поверхности, чтобы потом на их основе строить конвексы
Вернее, локально выпуклые
Пример - плоская спираль, в каждой точке выпукла, но глобально - нет

#18
14:18, 18 ноя 2021

Aslan
> docs к чему?
К физ движку.

#19
15:29, 18 ноя 2021

Morgend
Частицы это сферы, алё?

> Для разрушаемых или деформируемых объектов вполне подойдут.
Разрушаются на конвексы. Деформируются костями.

#20
18:31, 18 ноя 2021

Aslan
> Наводящий вопрос - как ты выталкиваешь конвексы?
Я не выталкиваю) Физические движки так работают.

#21
19:07, 18 ноя 2021

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

#22
19:58, 18 ноя 2021

Morgend
BSP-деревом (а точнее, auto-partitioning solid leaf-labelled деревом) можно разбить модель на выпуклые части - каждый "сплошной" листовой узел - конвекс, его плоскости легко достать.
Конвексы получаются плохого качества (много треугольников плохой формы), но для простых сценок/моделей пойдёт.

#23
8:25, 19 ноя 2021

Aslan
> Пример - плоская спираль, в каждой точке выпукла, но глобально - нет

Смотря как спираль выполнена в один полигон на секцию, то да, получается проблема с выпуклостью. А если она выполнена призмами, то уже появляются выпуклые поверхности.

lookid
> Частицы это сферы, алё?

Скорее кристаллическая решётка, такая, чтобы шаг между частицами был равен R.

lookid
> Разрушаются на конвексы. Деформируются костями.
А как на ходу эффективно выделять конвексы?

lookid
> Деформируются костями.
Структура из частиц со связями и будет костями модели.

#24
(Правка: 16:13) 16:07, 19 ноя 2021

betauser
> MikeNew
> https://github.com/kmammou/v-hacd
Спасибо. Проверил на этой арке, работает, но как-то странно. Наверное, в настройках надо копаться.
Работал с эти аддоном, можно его настроить чтобы он из этой арки три конвекса сделал? А то у меня делает четыре.

Изображение
#25
16:07, 19 ноя 2021

Aslan
> А зачем бить на конвексы? Чтобы применять SAT?
> Проще построить OctTree
Конечно, САТ. Я люблю САТ, он быстрый.

#26
16:11, 19 ноя 2021

Suslik
> даже если конвексы как попало объединить, они композитно образуют не конвекс и
> с ним точно такие же проблемы могут возникать, а именно, тела могут начать
> застревать между сцепленными конвексами.
В моем случае такого быть не должно, модели простейшие. К примеру, под этой аркой будет пробегать капсула персонажа.

#27
(Правка: 19:48) 17:52, 19 ноя 2021

MikeNew
> Спасибо. Проверил на этой арке, работает, но как-то странно. Наверное, в
> настройках надо копаться.
> Работал с эти аддоном, можно его настроить чтобы он из этой арки три конвекса
> сделал? А то у меня делает четыре.

Проверил, если выставить 10 конвексов, то тоже 4 получается. Если 3 и Resolution = 10,000,000, то тогда как нужно. С аддоном не работал, библиотека как понял та же внутри.

NeoAxis Convex | Автоматическое создание конвексов для сложной модели
#28
18:31, 19 ноя 2021

BingoBongo
MikeNew
При прямолинейном движении двух произвольных мешей касание происходит либо вершина в грань, либо ребро в ребро,
ловишь этот момент и либо продолжаешь симуляцию с него (CCD), либо откатываешь до него эти два меша (выталкивание).
Разбиение на конвексы - ненужно
> если хочешь в лоб, то, как ты сказал, можно построить дерево
Дерево - это не "в лоб", а намного более эффективная реализация

#29
0:58, 20 ноя 2021

Aslan
> При прямолинейном движении двух произвольных мешей касание происходит либо
> вершина в грань, либо ребро в ребро,
> ловишь этот момент и либо продолжаешь симуляцию с него (CCD), либо откатываешь
> до него эти два меша (выталкивание).
> Разбиение на конвексы - ненужно
> > если хочешь в лоб, то, как ты сказал, можно построить дерево
> Дерево - это не "в лоб", а намного более эффективная реализация
Ты уже сделал сравнение с Bullet? Во сколько раз твой подход оказывается быстрее?

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее