Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2012, 23:32   #31
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Kostia Посмотреть сообщение
И тут явная ошибка в логике все возможные столкновения, ладно фиксируем время, даже страшно спрашивать приблизительное значение этого времени.
В самом худшем и неоптимизированном случае N^2 проверок. Из котороых подавляющее большинство укажет на отсутствие столкновения.
Имеется в виду первое столкновение, а не все возможные на протяжении всего времени существования системы.
Цитата:
При добавлении нового объекта в систему, совершенно ничего не нужно пересчитывать, ровно также проверяем кто с кем пересекся в текущий момент времени.
Если это не пересчет, тогда что именно Вы называете пересчетом?
Цитата:
Для оптимизации разбиваем пространство...
Да, это эффективный способ уменьшить объем вычислений (количество проверок), но он может быть использован в любом случае.
Цитата:
Второе, даже если время фиксированное, как вы собираетесь определять столкновения если объекты движутся по сложным траекториям
Тогда сразу возникает вопрос: а откуда берутся эти сложные траектории? Не из факта ли взаимодействия меду объектами?
Цитата:
Единственный выход это фиксация шага времени(dt)
Почему Вы считаете этот вариант единственным?
s-andriano вне форума Ответить с цитированием
Старый 22.07.2012, 01:21   #32
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Цитата:
Тогда сразу возникает вопрос: а откуда берутся эти сложные траектории? Не из факта ли взаимодействия меду объектами?
Нет. Я могу задать двум объектам сложной формы линейную и угловую скорость + силы, ветер, гравитация... .
Цитата:
В самом худшем и неоптимизированном случае N^2 проверок.
Вы хотя бы для двух квадратов приведите пример/формулы/алгоритмы. Квады имеют линейную скорость, угловую, и на них действует гравитация. Ну и их можно заключить внутрь ограниченной области(например внутри еще одного квадрата).
Kostia вне форума Ответить с цитированием
Старый 22.07.2012, 12:17   #33
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Kostia Посмотреть сообщение
Нет. Я могу задать двум объектам сложной формы линейную и угловую скорость + силы, ветер, гравитация... .

Вы хотя бы для двух квадратов приведите пример/формулы/алгоритмы. Квады имеют линейную скорость, угловую, и на них действует гравитация. Ну и их можно заключить внутрь ограниченной области(например внутри еще одного квадрата).
И "ветер", и "гравитация", - это, как ни странно, тоже "силы". И если в реальном мире силы - вещь достаточно сложная: например, для сопротивление воздуха так и не смогли найти более или менее точной формулы, действующей в широком диапазоне чисел Рейнольдса, то в нашем виртуальном мире законы физики сочиняем мы сами, и поэтому все они имеют точное аналитическое выражение. А раз так, существует и точное решение.
В реальном мире невозможно одновременно с произвольной точностью получить координату и импульс - принцип неопределённости Гейзенбе́рга не дает. Правда, в нашем виртуальном мире, как правило, физика попроще, и такого ограничение нет, но есть другое - объем информации.
Точное значение единственного числа - это бесконечный объем информации. Соответственно, для его получения потребуется бесконечное время. Тупик.
Поэтому при любом моделировании используются приближенные вычисления, и существует даже отдельная теория, как при этом следует считать, чтобы ошибки со временем затухали, а не нарастали экспоненциально.
В частности, в любой задаче делается целый ряд упрощений. Без них решить задачу оказывается невозможно.
Теперь, что Вы мне предлагаете?
Вы предлагаете привести формулы и алгоритмы для достаточно общего случая.
Если я привожу точные формулы, оказывается, что либо они не имеют аналитического решения (что вероятнее), либо - решение слишком ресурсоемко.
Если я делаю некоторые упрощения, Вы имеете полное право заявить, что именно это упрощение неприемлемо для данной задачи, и даже привести примеры, в которых это упрощение не будет работать.
Если я сделаю другое упрощение, Вы можете отреагировать точно так же, приведя другие примеры.
Другими словами, своим предложением Вы пытаетесь поставить меня в заведомо проигрышную ситуацию.
Мне кажется это неконструктивным.

Со своей стороны могу предложить сравнить между собой два варианта решения:
1. Траектории вычисляются приближенно, но шаг по времени считается до ближайшего столкновения.
2. Как вычисляются траектории - не важно, но шаг фиксированный и после "взаимопроникновения" объектов их надо как-то "растаскивать".
Очевидно, каждый из способов ведет к своим погрешностям и сложностям. Вот их и предлагаю попытаться оценить.
s-andriano вне форума Ответить с цитированием
Старый 22.07.2012, 13:21   #34
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

s-andriano, позвольте один вопрос. Вы сами это все когда-нибудь писали?
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 22.07.2012, 14:19   #35
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Поясните, пожалуйста, что Вы подразумеваете под словами "это все".
Профессионально я занимаюсь численным моделирование физических процессов, если это та информация, которая Вас интересует.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка столкновений с блоками 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