Russian Qt Forum
Ноябрь 23, 2024, 00:15
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Алгоритмы
>
Ветер и препятствия (Cold Wind Blows)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Ветер и препятствия (Cold Wind Blows) (Прочитано 4299 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Ветер и препятствия (Cold Wind Blows)
«
:
Апрель 11, 2011, 14:28 »
Добрый день
Нужно придумать хорошее
упрощенное
решение для довольно сложной вещи.
Есть сцена в которой 3D объекты состоящие из треугольников. Есть специальный эффект "ветер" (wind) который реализован в виде объекта-сервера. Каждый объект в сцене который подвергается действию ветра (клиент) может запросить силу ветра в заданной точке, wind возвращает вектор (x, y, z) который имеет величину и направление. Что дальше с этим вектором делать - уже дело клиента. Вектор может быть разным в разных точках (турбулентность и все такое).
Все хорошо, но есть "маленькая" фича которую хотелось бы иметь: препятствия. Всем известно что "за стеной ветер не дует", но как это реализовать? Строить BSP, бросать лучи и.т.п - все это весьма сложно да и медленно т.к. запросов может быть много.
Идеи?
Спасибо
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Ветер и препятствия (Cold Wind Blows)
«
Ответ #1 :
Апрель 11, 2011, 15:32 »
Цитата: Igors от Апрель 11, 2011, 14:28
Добрый день
Нужно придумать хорошее
упрощенное
решение для довольно сложной вещи.
Есть сцена в которой 3D объекты состоящие из треугольников. Есть специальный эффект "ветер" (wind) который реализован в виде объекта-сервера. Каждый объект в сцене который подвергается действию ветра (клиент) может запросить силу ветра в заданной точке, wind возвращает вектор (x, y, z) который имеет величину и направление. Что дальше с этим вектором делать - уже дело клиента. Вектор может быть разным в разных точках (турбулентность и все такое).
Здесь имхо противоречие, ибо на векторное поле будет также влиять само расспределение (
r
i
) объектов и их скоростей
v
i
.
Поэтому,
Цитировать
Что дальше с этим вектором делать - уже дело клиента. Вектор может быть разным в разных точках
дело не только конкретного клиента.
Объект по хорошему, должен делать то, (зная векторное поле в данной точке), что положено по законам вашей "физики". И это должен решать не сам конкретный объект, а тот, кто знает в данный момент времени всю информацию о поле, и о всех объектах: их координаты и скорости.
Гамильтониан, короче, должен всё знать и всем управлять)) Или функция Лагранжа)
«
Последнее редактирование: Апрель 11, 2011, 15:34 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Ветер и препятствия (Cold Wind Blows)
«
Ответ #2 :
Апрель 11, 2011, 15:43 »
Да, если рассматривать такую ситуацию, при которой объекты в первом приближении не влияют на поле, то задача просто сводится к нахождению этого векторного поля.
Тогда зачем упоминать вообще об объектах?
Задача: найти поле сил?
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Ветер и препятствия (Cold Wind Blows)
«
Ответ #3 :
Апрель 11, 2011, 15:48 »
Цитата: m_ax от Апрель 11, 2011, 15:32
Гамильтониан, короче, должен всё знать и всем управлять)) Или функция Лагранжа)
Ну вот чувствуется "кладка научного работника" которому надо не задачу решить, а наоборот, все запутать, приплести Гамильтониан, Якобиан и.т.п.
Цитата: m_ax от Апрель 11, 2011, 15:32
Здесь имхо противоречие, ибо на векторное поле будет также влиять само расспределение (
r
i
) объектов и их скоростей
v
i
.
А мы рассматриваем фиксированный/дискретный момент времени и предполагаем что шаг анимации достаточно мал. На следующем шаге расклад конечно изменится, т.к. положение объектов могло измениться (да и параметры ветра тоже), так то будет уже др. расчет.
Цитата: m_ax от Апрель 11, 2011, 15:32
дело не только конкретного клиента.
Объект по хорошему, должен делать то, (зная векторное поле в данной точке), что положено по законам вашей "физики". И это должен решать не сам конкретный объект, а тот, кто знает в данный момент времени всю информацию о поле, и о всех объектах: их координаты и скорости.
Пусть Вас это не волнует, там есть кому этим заниматься. Задача уметь находить силу ветра в точке с учетом фиксированных (на данном шаге) препятствий. Так что не "растекайтесь мыслью по древу"
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Ветер и препятствия (Cold Wind Blows)
«
Ответ #4 :
Апрель 11, 2011, 16:00 »
Цитировать
А мы рассматриваем фиксированный/дискретный момент времени и предполагаем что шаг анимации достаточно мал. На следующем шаге расклад конечно изменится, т.к. положение объектов могло измениться (да и параметры ветра тоже), так то будет уже др. расчет.
Это я понял. Я это к тому, что весь процес детерменирован, и распределение объектов, их скоростей и самого поля, зависит от всего этого от предыдущих моментов. Причинно-следственная связь.
А когда сам объект решает что ему делать - это имхо каша получится.
Цитировать
Пусть Вас это не волнует, там есть кому этим заниматься. Задача уметь находить силу ветра в точке с учетом фиксированных (на данном шаге) препятствий. Так что не "растекайтесь мыслью по древу"
Ну так и вопрос нужно формулировать тогда было так: Найти поле сил, при заданных граничных условиях.
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Ветер и препятствия (Cold Wind Blows)
«
Ответ #5 :
Апрель 12, 2011, 13:33 »
Кстати, не напишите потом, как Вы её решали эту boundary value problem с ветром?
Не представляю как её можно просто решить, а если Вы говорите и турбулентности там всякие и т.д. то становится особено очень интересно)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Ветер и препятствия (Cold Wind Blows)
«
Ответ #6 :
Апрель 12, 2011, 16:48 »
Цитата: m_ax от Апрель 12, 2011, 13:33
Кстати, не напишите потом, как Вы её решали эту boundary value problem с ветром?
Не представляю как её можно просто решить, а если Вы говорите и турбулентности там всякие и т.д. то становится особено очень интересно)
Не надо полагать что речь идет о честной модели турбулентности
Это делается просто: к основному вектору (т.е. заданному параметрами) добавляется "розовый" (т.е. коррелированный) шум.
По самой задаче "ветер" - ну как минимум одно решение есть, которому тоже много лет, просто обычно это используется для др. целей. И всем оно хорошо кроме одного - требует UI и задания пользователем настроек.
В общем речь идет об упрощенных, эвристических решениях, не диссертацию пишем
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...