Войти
ПрограммированиеФорумФизика

как лечить penetrations

Страницы: 1 2 Следующая »
#0
14:48, 12 мар. 2007

НИКАК НЕ МОГУ ПОНЯТЬ как ето пофиксить! если делить таймстеп на несколько - тону в тормозах! может можно как нить по другому! типо узнал в какой время колижон и откатил назад,--КАКККК


#1
12:44, 15 мар. 2007

!

#2
13:05, 15 мар. 2007

Обычно так - узнал что есть пенетрация - вывел один объект из другого на глубину пенетрации в направлении проникновения. Конкретика сильно зависит от того какой физико/геометрической моделью ты пользуешся.

#3
21:35, 16 мар. 2007

2=A=L=X=
я пользую пополигоналиный колижон мешей! и когда вытягивать - типо так?

for each tri a
{
    for each tri b
    {
          if a crosses b
      {
            correct(a)
      }
    }
}

или как - можеш описать как ето поподробней производить - или примеры каенить... оч надо - физика не работает Ж(

#4
13:08, 22 мар. 2007

читал можно искать момент времени в который пенетрация проихошла типо -

момент t,t+d - there was penetr...

then we divide line by 2 and we are seeking for collision for time - t,t+d/2 и тд!

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

такой подход эфективен ? иль утону в тормозах всеравно

#5
15:16, 22 мар. 2007

Тебе что физику надо?
Тогда зачем изобретать свой трехколесный велосипед?

#6
17:43, 22 мар. 2007

The Andreyp

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

#7
12:10, 23 мар. 2007

Во всех выталкивающих движка penetration неизбежен, иначе как тогда считать пересечения :)

#8
12:54, 23 мар. 2007

2gexogen
хочетцо чтобы было все свое - хотябы для опыта! не знаю что делать с етим! - реально! я столько времени потратил на эту проблему!  физика есть любая! и ригид - и софт! и КАРкушная! и джойнты! а вот при тормозах ето сваливаецо все в КАЛЛ! - поетому можно щитать что физики нет Ж( а так хочется наконец официально пользовать ее! не знаю че делать с пенетр!

кстати в семе2 тожа все оч плохо! я спецально устраивал тормоза и наслаждался тем как кровати проваливались в пол! и прыгали после чтобы восстановиться

#9
13:39, 23 мар. 2007

The Andreyp
Я не имею ввиду использовать готовый физ.движок - просто используй готовые решения.
Смутно представляю устройство твоего творения, но если ты прибавляешь при разрешении столкновений импульс,
то можешь просто увеличивать его на erp * fps * penetration_depth,
erp - Error Reduction Parameter, [0;1] - на сколько ошибка будет излечена за шаг,
fps - кадров в секунду,
penetration_depth - глубина проникновения,
логика простая - вытолкнуть тело на erp * penetration_depth.
erp вводится для стабильности.

#10
14:33, 23 мар. 2007

2gexogen
тоесть оптимальный вариант когда ерп=1 по ходу! схема такова

for each body - find contacts

for each body responce contacts

for each body integrate pos and velocity

хм - тоесть типо

когда делаю респонс импульса - надо делать чтото типо applyImpuse(point,impulse*erp*fps*pendep) ? right ?

#11
15:33, 23 мар. 2007

>тоесть оптимальный вариант когда ерп=1 по ходу! схема такова
я поэтому и написал "erp вводится для стабильности."
если бы оптимальный вариант был бы 1, то его вообще бы не нужно было придумывать :)
В доках к некоторым физ.движках пишут как лучше подбирать этот параметр.
Можешь для начала попробовать значения в пределах 0.1-0.3.
А вообще - все сильно зависит от метода который ты выбрал.
пример -
1. integrate velocity
2. resolve contacts and constraints
3. integrate position
Вообще - тут уже много раз спрашивали ссылки для разработки физики, так что просто поищи -
например недавно вышла презентация Erin Catto уже GDC 2007.

#12
11:32, 28 мар. 2007

спасиб! вроде работает! тока не ясно! тама у него некий биас вмешивается в формулу вычисления импульса - это что то типо restitution ?

и что у него c->separation - contact depth  ?

#13
9:49, 2 апр. 2007

заюзал тему - вот тока все равно не ок! сделал все как в той проге но при тормозах тела начинают прыгать на поверхности Ж((

#14
9:16, 9 апр. 2007

!

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

Тема в архиве.