Название: Ветер и препятствия (Cold Wind Blows) Отправлено: Igors от Апрель 11, 2011, 14:28 Добрый день
Нужно придумать хорошее упрощенное решение для довольно сложной вещи. Есть сцена в которой 3D объекты состоящие из треугольников. Есть специальный эффект "ветер" (wind) который реализован в виде объекта-сервера. Каждый объект в сцене который подвергается действию ветра (клиент) может запросить силу ветра в заданной точке, wind возвращает вектор (x, y, z) который имеет величину и направление. Что дальше с этим вектором делать - уже дело клиента. Вектор может быть разным в разных точках (турбулентность и все такое). Все хорошо, но есть "маленькая" фича которую хотелось бы иметь: препятствия. Всем известно что "за стеной ветер не дует", но как это реализовать? Строить BSP, бросать лучи и.т.п - все это весьма сложно да и медленно т.к. запросов может быть много. Идеи? Спасибо Название: Re: Ветер и препятствия (Cold Wind Blows) Отправлено: m_ax от Апрель 11, 2011, 15:32 Добрый день Здесь имхо противоречие, ибо на векторное поле будет также влиять само расспределение (ri) объектов и их скоростей vi.Нужно придумать хорошее упрощенное решение для довольно сложной вещи. Есть сцена в которой 3D объекты состоящие из треугольников. Есть специальный эффект "ветер" (wind) который реализован в виде объекта-сервера. Каждый объект в сцене который подвергается действию ветра (клиент) может запросить силу ветра в заданной точке, wind возвращает вектор (x, y, z) который имеет величину и направление. Что дальше с этим вектором делать - уже дело клиента. Вектор может быть разным в разных точках (турбулентность и все такое). Поэтому, Цитировать Что дальше с этим вектором делать - уже дело клиента. Вектор может быть разным в разных точках дело не только конкретного клиента. Объект по хорошему, должен делать то, (зная векторное поле в данной точке), что положено по законам вашей "физики". И это должен решать не сам конкретный объект, а тот, кто знает в данный момент времени всю информацию о поле, и о всех объектах: их координаты и скорости. Гамильтониан, короче, должен всё знать и всем управлять)) Или функция Лагранжа) Название: Re: Ветер и препятствия (Cold Wind Blows) Отправлено: m_ax от Апрель 11, 2011, 15:43 Да, если рассматривать такую ситуацию, при которой объекты в первом приближении не влияют на поле, то задача просто сводится к нахождению этого векторного поля.
Тогда зачем упоминать вообще об объектах? Задача: найти поле сил? Название: Re: Ветер и препятствия (Cold Wind Blows) Отправлено: Igors от Апрель 11, 2011, 15:48 Гамильтониан, короче, должен всё знать и всем управлять)) Или функция Лагранжа) Ну вот чувствуется "кладка научного работника" которому надо не задачу решить, а наоборот, все запутать, приплести Гамильтониан, Якобиан и.т.п. :)Здесь имхо противоречие, ибо на векторное поле будет также влиять само расспределение (ri) объектов и их скоростей vi. А мы рассматриваем фиксированный/дискретный момент времени и предполагаем что шаг анимации достаточно мал. На следующем шаге расклад конечно изменится, т.к. положение объектов могло измениться (да и параметры ветра тоже), так то будет уже др. расчет.дело не только конкретного клиента. Пусть Вас это не волнует, там есть кому этим заниматься. Задача уметь находить силу ветра в точке с учетом фиксированных (на данном шаге) препятствий. Так что не "растекайтесь мыслью по древу" :)Объект по хорошему, должен делать то, (зная векторное поле в данной точке), что положено по законам вашей "физики". И это должен решать не сам конкретный объект, а тот, кто знает в данный момент времени всю информацию о поле, и о всех объектах: их координаты и скорости. Название: Re: Ветер и препятствия (Cold Wind Blows) Отправлено: m_ax от Апрель 11, 2011, 16:00 Цитировать А мы рассматриваем фиксированный/дискретный момент времени и предполагаем что шаг анимации достаточно мал. На следующем шаге расклад конечно изменится, т.к. положение объектов могло измениться (да и параметры ветра тоже), так то будет уже др. расчет. Это я понял. Я это к тому, что весь процес детерменирован, и распределение объектов, их скоростей и самого поля, зависит от всего этого от предыдущих моментов. Причинно-следственная связь. А когда сам объект решает что ему делать - это имхо каша получится. Цитировать Пусть Вас это не волнует, там есть кому этим заниматься. Задача уметь находить силу ветра в точке с учетом фиксированных (на данном шаге) препятствий. Так что не "растекайтесь мыслью по древу" Ну так и вопрос нужно формулировать тогда было так: Найти поле сил, при заданных граничных условиях. Название: Re: Ветер и препятствия (Cold Wind Blows) Отправлено: m_ax от Апрель 12, 2011, 13:33 Кстати, не напишите потом, как Вы её решали эту boundary value problem с ветром?
Не представляю как её можно просто решить, а если Вы говорите и турбулентности там всякие и т.д. то становится особено очень интересно) Название: Re: Ветер и препятствия (Cold Wind Blows) Отправлено: Igors от Апрель 12, 2011, 16:48 Кстати, не напишите потом, как Вы её решали эту boundary value problem с ветром? Не надо полагать что речь идет о честной модели турбулентности :) Это делается просто: к основному вектору (т.е. заданному параметрами) добавляется "розовый" (т.е. коррелированный) шум.Не представляю как её можно просто решить, а если Вы говорите и турбулентности там всякие и т.д. то становится особено очень интересно) По самой задаче "ветер" - ну как минимум одно решение есть, которому тоже много лет, просто обычно это используется для др. целей. И всем оно хорошо кроме одного - требует UI и задания пользователем настроек. В общем речь идет об упрощенных, эвристических решениях, не диссертацию пишем :) |