|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.07.2012, 00:13 | #21 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Даже спорить больше нет желания, пока хоть чем то не подкрепите свои слова.
|
21.07.2012, 00:20 | #22 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Kostia, мне казалось, что при таком подходе будут нежелательные эффекты вроде большего влияния первого обработанного объекта в сравнении с остальными. Ваш проект показал мне, что это не так, большое спасибо.
Форматируйте код, будьте людьми.
|
21.07.2012, 00:53 | #23 | |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Цитата:
Но подход очень даже мощный, ведь если ввести связи между частицами, то можно использовать единый подход для моделирования достаточно сложных ситуаций. Например Ragdoll, моделирование мягких тел, моделирование одежды, моделирование твердых тел, если ввести возможность создания и разрыва связи, то можно моделировать вязкую жидкость. В общем мощный, быстрый и главное простой метод. Опять же см. ссылки в посте #3 и еще пара полезных: http://www.l1f.ru/dev/download/Advan...terPhysics.rar http://demiart.ru/forum/index.php?showtopic=136990 Последний раз редактировалось Kostia; 21.07.2012 в 01:21. |
|
21.07.2012, 01:02 | #24 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Kostia, спасибо огромное.
Форматируйте код, будьте людьми.
|
21.07.2012, 09:30 | #25 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Мне представляется, что когда человек размещает для обсуждения какую-либо тему, то наиболее интересным для него являются именно недостатки применяемого подхода (а иногда ТС даже не подозревает, что существуют другие подходы), т.к. о достоинствах, я полагаю, он немного в курсе. Поэтому - да, - я обычно больше внимания уделяю именно недостаткам того или иного решения или подхода. И не следует воспринимать это как критику в свой адрес. По всей видимости, Вас интересует подход с непрерывным временем. С моей точки зрения, если игра (либо вообще любой виртуальный мир) подразумевает физику (существуют логические игры, для которых физика не нужна в принципе, впрочем, как и такая категория как время), то время должно идти только непрерывно. В то же время любое численное моделирование возможно только при дискретном времени. Соответственно, необходимо нахождение компромисса. Некоторым идеализированным компромиссом мог бы служить такой, в котором приращение времени в точности равно интервалу между событиями, которые необходимо учитывать. Например, времени между столкновением объектов. Пусть у нас N объектов. Мы рассчитываем, когда должны произойти все возможные столкновения, выбираем из них ближайшее по времени и именно до этого момента и будет продолжаться наш шаг по времени. Шагнули. Определяем, когда произойдет следующее столкновение, делаем еще один шаг и т.д. Если нас интересует только физическое моделирование, такой подход представляется оптимальным, но в случае, когда у нас требуется еще и отображение в реальном времени, он может вызвать серьезные трудности, минимум, по одной из двух причин (в том числе и по обеим сразу): 1. Шаг слишком велик - перемещения тел по экрану не выглядят плавными. 2. Шаг слишком мал, - на один кадр приходится слишком много шагов, в результате чего объем приходящихся на кадр вычислений оказывается неприемлемо большим - компьютер не успевает все обсчитать. С первой "трудностью" бороться довольно легко - достаточно ограничить величину шага по времени. Со второй - хуже. Приходится применять какие-либо хитрости для снижения объема вычислений. Например, вместо общего шага интегрирования вводить разные шаги для отдельных объектов или их групп. Как - это уже конкретные особенности задачи, которые нужно анализировать в каждом конкретном случае. Последний раз редактировалось s-andriano; 21.07.2012 в 09:33. |
|
21.07.2012, 12:46 | #26 | |||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Цитата:
2. При постоянном добавлении в систему новых объектов придется ВСЁ пересчитывать. Цитата:
Объекты являются связанными... При моделирование воды... Ограничения метода, Position-Based: Цитата:
|
|||
21.07.2012, 15:29 | #27 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Очевидно, для правильной имитации столкновений нужно обратиться к физике, т.е. габариты тела (упрощенный "тал-боди"), вес, вектор перемещения и импульс. Обработка объектов по списку, ...каждый объект "смотрит" все имеющиеся в свое время цикла перебора, в зависимости от близости выполняется передача импульса, все объекты изменяют свои параметры и далее гравитация тормозит каждый объект до полной остановки или препятствия. Естественно, если скорость одного объекта уже равна нулю, то лежащий выше на нем уже импульса не получит, в результате, оба лежат смирно, ничего не дергается.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
21.07.2012, 19:24 | #28 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
|
21.07.2012, 19:28 | #29 | ||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Это шутка такая?
Цитата:
А что, в каком-то другом случае придется пересчитывать не ВСЕ? Цитата:
|
||
21.07.2012, 20:15 | #30 | |||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Цитата:
Цитата:
Цитата:
Второе, даже если время фиксированное, как вы собираетесь определять столкновения если объекты движутся по сложным траекториям и обладают сложной формой и вдобавок деформирующейся в полете. Единственный выход это фиксация шага времени(dt) и просчитывать состояние всей системы с данным шагом, проверять не нашлось ли столкновения, если нет, делаем t += dt, до тех пор пока не обнаружим столкновения или не кончится наш фиксированный интервал времени. Естественно чем меньше этот фиксированный интервал времени, тем меньше ресурсов будет тратить компьютер, устремляем его в нуль... |
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка столкновений с блоками | alonix | Помощь студентам | 14 | 15.04.2012 19:29 |
обработка числовых последовательностей и последовательная обработка символов | Renat(kai) | Помощь студентам | 3 | 28.03.2012 23:22 |
обработка файлов | Pepsik | Помощь студентам | 1 | 10.07.2011 21:35 |
Обработка столкновений окружностей. | Вадим Буренков | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 18 | 08.03.2010 13:43 |
Код проверки столкновений не работает. | Манжосов Денис :) | Общие вопросы Delphi | 8 | 02.02.2009 10:31 |