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

Удары мячей и прямоугольных объектов. Как определять границы? (2 стр)

Страницы: 1 2
#15
18:58, 11 июля 2009

flaber
скинь или сюда или на Ifolder  пожалуста, интересно что у тебя там так тормозит...


#16
21:09, 11 июля 2009

Воть: http://rghost.ru/343053

Как уже говорил использую свою мат либу скомпилиную в .dll. В Папке release лижит две версии этой библиотеки.
CoreUtilit.dll- скомпилено студией с флагом \O2
tmpCoreUtilit.dll - скомпилено Intel C++ Compiller 10.0.1
У меня использование кампилятора сильно ускоряет физику: при 500 объектах с 13 до 60 fps
проц DualCore E2160 разогнан до 2.13

Проcьба потестить производительность с разными библиотеками ( переименуйте их )
Если не лень с разным количеством объектов.
Оссобенно интересны результаты на AMD.

P.S. будут вопросы по коду пишите.

#17
12:21, 12 июля 2009

Что коментариев не будет?
Там коду вроде не много, чтоб так долго изучать.

#18
17:01, 12 июля 2009

10-12 фпсов с tmpCoreUtilit.dll (64кб)
70-900 фпсов с CoreUtilit.dll (508кб)

Фпс меняется в зависимости от количества шариков на экране. Тестился экзешник из release.

AMD Athlon 64 3500+ (~2.2 ГГц)

#19
18:09, 12 июля 2009

бгг
75-700 фпсов с CoreUtilit.dll (совсем не отворачивался от шариков)
после попытки запуска с tmpCoreUtilit.dll перестала запускаться вообще
Amd Athlon 64 3800+ 2.6ггц (overclocked) and ati 3870

#20
18:48, 12 июля 2009

Jamshoot
Думал на AMD разница будет меньше, а она наоборот больше. Оо

Super_inoy
> после попытки запуска с tmpCoreUtilit.dll перестала запускаться вообще
Странно. Особенно учитывая что у Jamshoot'а на AMD запустилось.


А код физики кто-нибуть смотрел. Скажет  кто-нибуть как там убого сделано и как лучше сделать, что почитать?

#21
20:31, 12 июля 2009

ProgerX
окружность vs прямоугольник - сначала тестишь описанный квадрат, это быстро делается
если есть пересечение - тестишь с окружностью (по отрезкам)
отрезок vs окружность -
ур-е прямой p=p1+t*(p2-p1)
где p1,p2-нач.,кон.точки,t-параметр
причем для отрезка [p1,p2]  0<=t<=1
ур-е окружности:
(p-pc)^2=r^2 (слева скаляр.произведение)
решаешь систему
если дискр.>=0 и 0<=t<=1-есть пересечение

#22
20:37, 12 июля 2009

flaber
аналогичная прога http://aslan-prog.narod.ru/DEMOS/balls.rar

#23
20:48, 12 июля 2009

ProgerX
сейчас подумал: может быть окружность полностью внутри прямоугольника или наоборот - тоже коллизия
вот общий способ:

ур-е окружности:
(x-xc)^2+(y-yc)^2=r^2

ур-е прямоугольника
a<=x<=b
c<=y<=d

тогда для  прямоугольника,  где a1,b1=min,max от (a-xc)^2, (b-xc)^2, соотв-но c1,d1
a1<=(x-xc)^2<=b1
c1<=(y-yc)^2<=d1
общие точки есть тогда и только тогда, когда
a1+c1<=r^2<=b1+d1

#24
21:26, 12 июля 2009

flaber
не учёл что у тебя гравитация всех ко всем, поскольку у тебя сложность n^2 это нормально (для коллизий обычно пространство получше разбивают и погруппам проверяют соударения)

#25
0:52, 14 июля 2009

Aslan, спасибо большое за информацию! Буду разбираться!

#26
14:05, 14 июля 2009

ProgerX
Ссылка на ВанДерБергена
http://rapidshare.com/files/255663868/Coll_Det_in_Int_3D_Env.rar.html

Хотя Кауфман - почти тоже самое.

Страницы: 1 2
ПрограммированиеФорумФизика

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