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

2D-движок столкновений (на основе импульсов)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 316 17 Следующая »
#0
10:02, 18 янв. 2005

Сейчас попробую выложить в качалку...


#1
10:05, 18 янв. 2005

Последняя версия от 5.03.05

http://www.gamedev.ru/download/?id=1882

#2
10:08, 18 янв. 2005

Управление:

кораблем: лево/право - поворот, вверх - разгон, вниз - торможение.

-/+: изменить масштаб

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

#3
10:18, 18 янв. 2005

P III 550 MHz Riva TNT 2 Win2K
CPU: 0.535 Ghz
running time: 527 sec
average: 33/sec
worst: 8/sec

13 fps, тормозит, а вообще прикольно

#4
10:25, 18 янв. 2005

ok, спасибо.

30 тел, я так чуствую, более менее варятся на 1 Ghz... хотя там большой простор для оптимизации ;)

#5
10:28, 18 янв. 2005

Athlon 2500+ ATI9600XT Win2k3
CPU: 1.829 Ghz
running time: 79 sec
average: 681/sec
worst: 21/sec

#6
10:39, 18 янв. 2005

Cel633, GF4Mx420, Win2000
CPU: 0.580 Ghz
running time: 145 sec
average: 78/sec
worst: 23/sec
Fps ~35

Мне понравилось:) Теперь только применить качественно:)

#7
10:42, 18 янв. 2005

JokerR
У меня практически тоже самое, только система w2003. Не тормозит, 50фпс :).

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

#8
10:42, 18 янв. 2005

спасибо, хе-хе, дело за малым - дописать всю оставшуюся часть игры... :-)

#9
10:55, 18 янв. 2005

jaguard

ну хмм... так много чего есть... первоначально - система определения пересечения фигур: выпуклых мн-ов и окружностей, которая выдает точку пересечения.
далее построение нормали для этого пересечения - там есть хитрости, когда фигуры сталкиваются углами. Физика организована следующим образом: в начале очередного дискретного интервала применяем все силы за промежуток dt (dt = длительность этого интервала): у каждого тела изменяются линейная скорость (вектор) и угловая (скаляр). А далее на этом дискретном интервале считаем, что силы больше не действуют и тела движутся равномерно и прямолинейно. Это удобно и выглядит вполне естественно. Далее - столкновения. Основаны на "импульсной" модели, то есть считаем, что в точке столкновения тела обмениваются импульсом j по нормали, есть формулы в инете - в двух словах не объяснишь. Суть метода - упростить реальную физическую модель, которая очень сложна. Когда я попробовал решить задачу честно, MathCad заглох на формуле длиной 1.5 килобайта... Столкновения приводят к контактам. Необходимо также учитывать "залезание" тел друг в друга. Последняя вещь далась очень трудно - 2 месяца я экспериментировал, пока наконец не получил нужный результат. Вспомнил в процессе этого решение системы линейных уравнений по Гаусса, потом симплекс-метод, а потом нашел дешевый и простой способ хе хе) но нет худа без добра - теперь есть хорошая реализация симплекс-метода на будущее ;)

вот.

#10
11:14, 18 янв. 2005

P-4 + IGP ATI RADEON 9200 WinXP
CPU: 2.795 Ghz
running time: 73 sec
average: 391/sec
worst: 178/sec

FPS ~50

#11
11:47, 18 янв. 2005

Gregory_krovosos, o_O

#12
11:48, 18 янв. 2005

P4 3.2
1GB
ATI Radeon 9600XT 128mb
Win XP

CPU: 3.208 Ghz
running time: 350 sec
average: 310/sec
worst: 16/sec

FPS 56

#13
12:18, 18 янв. 2005

CPU: 2.794 Ghz
running time: 55 sec
average: 589/sec
worst: 242/sec

#14
13:28, 18 янв. 2005

CPU: Athlon 64 3000+ 1.885 Ghz
running time: 21 sec
average: 742/sec
worst: 386/sec

FPS 70

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

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