Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Невыпуклые тела. Разрешение контактов.

Невыпуклые тела. Разрешение контактов.

Страницы: 1 2 Следующая »
ParkuristПользовательwww11 сен. 201720:43#0
img_1 | Невыпуклые тела. Разрешение контактов.
Как строится физика невыпуклых тел? Правильно ли я понимаю что невыпуклые тела разбиваются на выпуклые, находится их центр масс и контакты решаются так же как и для выпуклого? Солвер ведь оперирует в основном точками контакта. На 2м рисунке правильно будет, если вращать Г-образное тело вокруг центра масс при контакте (аналогично как и на 1м рисунке?) ?
MrShoorУчастникwww11 сен. 201722:51#1
Parkurist
> Правильно ли я понимаю что невыпуклые тела разбиваются на выпуклые, находится
> их центр масс и контакты решаются так же как и для выпуклого?
Насколько я знаю - да, так и есть.
SuslikМодераторwww12 сен. 20175:20#2
Parkurist
> Правильно ли я понимаю
да

Parkurist
> правильно будет, если вращать Г-образное тело вокруг центра масс
да

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

ParkuristПользовательwww12 сен. 201713:37#3
Понятно. Попробую так и сделать, спасибо.
werasaimonПостоялецwww13 янв. 201820:39#4
Suslik
> стоит, однако, понимать, что аппроксимация невыпуклого тела выпуклыми — это
> относительно грубое приближение. например, если сделать впуклый стакан,
> состоящий из выпуклых стенок, и контакты решать для него как для множества
> выпуклых тел, то есть все шансы, что рано или поздно в этом стакане что-нибудь
> застрянет. однако, лучшего решения человечество так и не придумало.
Ну тут всё зависит от количества шейпов . Чем больше дискретизация геометрического объекта на выпуклые шейпы , темь больше точность коллизии , а  при определенной точности дискретизации аппроксимации  геометрического объекта выпуклыми шейпами , точность будет приближаться к верному решению, но к сожалению не до бесконечности . Под точностью , иметься виду точность описания геометрического объекта ,  то бишь стремления коллизий к истиной геометрии  !

Правка: 14 янв. 2018 0:50

endeavour_prЗабаненwww14 янв. 20183:35#5
Suslik
> однако, лучшего решения человечество так и не придумало.
Отлично.А кто нибудь может ответить почему  ?
MrShoorУчастникwww14 янв. 20185:59#6
endeavour_pr
> Отлично.А кто нибудь может ответить почему  ?
Тупые все. Мы же еще недавно только с пальмы слезли.
endeavour_prЗабаненwww14 янв. 201819:01#7
Ну ты за всех то не отвечай, здесь точно есть люди которым это интересно узнать и есть люди которые могут это объяснить.
werasaimonПостоялецwww14 янв. 201821:18#8
endeavour_pr
> Отлично.А кто нибудь может ответить почему  ?
Это не вероятно сложный вопрос, меня тоже это когда-то интиресовало. Я так и ненашол полного ответа.  Но тут всё  сводиться к теореме тёрстена (Теорема геометризации)  . Также как мы не можемь сделать расслоения обьекта в комплексную n-мерную плоскость если у объекта есть  отверстие (бублик,тор)  прежде не росслоивь этот обьект на топологические сферы (любой замкнутый n-мерный объект без дырки), также мы не можемь задать автоморфизм для разницы  минковского .и.т.д . всегда будут возникать бесконечности ,и , неоднозначтности .  Другими словами какой бы алгоритм мы не придумали  он будет эквивалетен , росллоению обекта на топологические сферы , в нашемь случаи это тесселяция обекта на выпуклые шейпы.
А замкнутая область в двух  пересекающихся областях  вороного, тоже самое что дырка в бублику , "в теореме пуанкаре" .
Короче говоря область в пересекающися областях  вороного , не геоморфны не пересекающимся областямь вороного, другими словами первое не можно привратить в второе неприривно (не возмжно искать колизии неприривно) !

Короче говоря любая геометрическая сущность это множество топологических сфер !

P.S : кстати любой не выпуклый обект , можно привратить в выпуклый, эсли деформировать метрику потоками ричи!  Может так возможно создать обамную колизию для любой геометрии ?

P.S : ну конечно для любой геометрии можно создать правильные  колизии , старым добрым методом брутфорса, для всех возможных  пар n-мерных симплексов!

Правка: 14 янв. 2018 21:30

SuslikМодераторwww15 янв. 20180:33#9
werasaimon
хватит лить этот бред в каждой теме. ты опять нахватался каких-то умных слов и начинаешь ими разбрасываться, будто понимаешь, что они значат.
mr.DIMASПостоялецwww15 янв. 20181:50#10
werasaimon
Изображение
PaulShПостоялецwww15 янв. 20183:27#11
Suslik
> если сделать впуклый стакан
А если стакан (бесконечно) гранёный? Тогда любую поверхность можно аппроксимировать сеткой треугольников, а объект - как сумму призм и тетраэдров...
SuslikМодераторwww15 янв. 20183:31#12
PaulSh
> А если стакан (бесконечно) гранёный? Тогда любую поверхность можно
> аппроксимировать сеткой треугольников, а объект - как сумму призм и
> тетраэдров...
приближать можно сколько угодно, только точности это не повысит, а наоборот появятся артефакты, при которых тела будут застревать между выпуклыми кусками, ибо попарное сталкивание выпуклых комплектующих вовсе не эквивалентно сталкиванию невыпуклых исходных геометрий, просто потому что minimal translation distance в общем случае вовсе не ассоциативен относительно операции композиции.

например, если разбить сталкивающиеся тела на элементарные составляющие вроде маленьких молекул/вокселей/атомов и сталкивать их попарно, то mtd при всём желании не может быть больше размера одного такого элемента. а для исходных тел — ещё как может. поэтому всегда чем меньше составляющих, тем результат лучше, причём не только с точки зрения производительности, но и точности.

Правка: 15 янв. 2018 3:34

m16aПользовательwww15 янв. 201820:39#13
А можно еще уточнить? Например расмотрим второй рисунок. Невыпуклое тело разбивается на два выпуклых в месте их сочленения добавляютья один/несколько джоинтов, и мы рассчитываем два тела. Так ли это? Или мы используем разбиение только для задачи нахождения точек контактов?

Правка: 15 янв. 2018 20:41

werasaimonПостоялецwww15 янв. 201822:23#14
m16a
> А можно еще уточнить? Например расмотрим второй рисунок. Невыпуклое тело
> разбивается на два выпуклых в месте их сочленения добавляютья один/несколько
> джоинтов, и мы рассчитываем два тела. Так ли это? Или мы используем разбиение
> только для задачи нахождения точек контактов?
Только для нахождения точек контактов  , и , там без джоинтов , просто все тела принадлижат единуму  центру масс , тобишь всё множество выпуклых шейпов перемещаться и вращается относительно единого центра масс (точка) !

Suslik
>хватит лить этот бред в каждой теме. ты опять >нахватался каких-то умных слов и начинаешь ими >разбрасываться, будто понимаешь, что они >значат
Ну это твое мнения, я не знаю, возможно!
Ну то что я написал . Это просто мои выводы. Я пришол к такимь выводам, роздумивая над этим вопросом в течении 3 лет .
И если ты будишь занимааться топологией, ты прийдешь примерно к тем же выводам, на счёт колизии . С вероятностю 90% ( это лично моё мнения, возможно ошибочно, но врядли )!
P.S: И конечно я абсолютно точно понимаю что пишу . То что я что-то не понимаю это полный бред .Скорей всего ты делаешь такой вывод ошыбочно !
И чесно говоря когда ты говоришь , что хто то чего-то незнает, ты как минимум должен показать почему , и , привести пример . Иначе это просто слова (бла,бла,бла) ! Эсли ты покажешь почему я не прав, я буду благодарен, и , признаю что я написал полный бред.  Я ни хочу быть правым , я просто хочу найти истину ! Если я написал бред , Окей , покажы мне дураку почему ?
P.S : прежде чем делать выводы, розберись в теме пожалуйста, видь ты не глупый, я знаю !

mr.DIMAS
Хи Хи ! Хорошо подколол меня !

Правка: 16 янв. 2018 0:16

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

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

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