Форум программистов, компьютерный форум, киберфорум
Программирование мультимедиа
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562

Как делается погода?

29.05.2012, 07:51. Показов 2183. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Например, ветер, дождь, снег, облака, град, молнии? Не только как рисуется, но и как моделить? Как вообще представить ветер в программе? А осадки? А облака? Что надо будет вычислить и по каким алгоритмам? Отрисовка будет в OpenGL.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2012, 07:51
Ответы с готовыми решениями:

Как делается погода?
Например, ветер, дождь, снег, облака?

Имеются описания: Сезон = (зима, весна, лето, осень) Погода = (тепло, холодно) По сезону ответить какова погода Delphi
Имеются описания: Сезон = (зима, весна, лето, осень) Погода = (тепло, холодно) По сезону ответить какова погода Delphi

Как разблокировать четвертое ядро на Athlon || x3 455?Как разогнать проц? Как это примерно делается?
Ну это если повезет разблокировать

12
15 / 15 / 5
Регистрация: 06.04.2012
Сообщений: 287
29.05.2012, 15:48
taras atavin, Создается отдельный класс Particle.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
        public Vector2 Position;
        public Vector2 Velocity;
        public Vector2 Acceleration;
        private float lifetime;
        public float Lifetime
        {
            get { return lifetime; }
            set { lifetime = value; }
        }
        private float timeSinceStart;
        public float TimeSinceStart
        {
            get { return timeSinceStart; }
            set { timeSinceStart = value; }
        }
        private float scale;
        public float Scale
        {
            get { return scale; }
            set { scale = value; }
        }
        private float rotation;
        public float Rotation
        {
            get { return rotation; }
            set { rotation = value; }
        }
        private float rotationSpeed;
        public float RotationSpeed
        {
            get { return rotationSpeed; }
            set { rotationSpeed = value; }
        }
        public bool Active
        {
            get { return TimeSinceStart < Lifetime; }
        }
        public void Initialize(Vector2 position, Vector2 velocity, Vector2 acceleration,
            float lifetime, float scale, float rotationSpeed)
        {
            this.Position = position;
            this.Velocity = velocity;
            this.Acceleration = acceleration;
            this.Lifetime = lifetime;
            this.Scale = scale;
            this.RotationSpeed = rotationSpeed;
            this.TimeSinceStart = 0.0f;
            this.Rotation = ParticleSampleGame.RandomBetween(0, MathHelper.TwoPi);
}
        public void Update(float dt)
        {
            Velocity += Acceleration * dt;
            Position += Velocity * dt;
 
            Rotation += RotationSpeed * dt;
 
            TimeSinceStart += dt;
        }
    }
Приблизительно вот так. Потом ложатся картинки(спрайты) и оформляются в игре. Погода - это самое легкое, что можно сделать...
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
29.05.2012, 15:52  [ТС]
А без решётки?
Цитата Сообщение от Adina Посмотреть сообщение
Погода - это самое легкое, что можно сделать...
Самоё лёгкое - это сам корабль без парусов в мёртвом дрейфе на глади океана. И я хотел в 3D на OpenGL.
0
Просто Икс
 Аватар для Mc X
691 / 233 / 47
Регистрация: 15.12.2009
Сообщений: 696
29.05.2012, 22:08
Цитата Сообщение от taras atavin Посмотреть сообщение
И я хотел в 3D на OpenGL
это как? OpenGL и Direct3D просто графика....
физика, система частиц, управление, работа с сетью и т.д. и т.п. по факту это все отдельно и лишь взаимодействуют с графикой.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.06.2012, 11:03  [ТС]
Цитата Сообщение от Mc X Посмотреть сообщение
OpenGL и Direct3D просто графика...
Директ называется DirectX, а не Direct3D, а 3D - это общее название всего трёхмерного. Мне не достаточно залить стекло иллюминатора и сказать, что это дождь, персонаж находится прямо под дождём на палубе и нужна 3D картинка с погодой. Капля может упасть и на палубу, и за борт, если она упала на палубу, то дальше может ничего делать и не надо, а если за борт, то её видимость зависит от того, с какой высоты над палубой и на каком расстоянии от борта смотрим. И не столько отрисовать снос капель, а в первую очередь ветер нужен для парусов, флагов и движеняи корабля.

Добавлено через 16 минут
Цитата Сообщение от Mc X Посмотреть сообщение
OpenGL и Direct3D просто графика...
Директ называется DirectX, а не Direct3D, а 3D - это общее название всего трёхмерного, тест коллизий тоже различается по размерности: если у тебя просто плоские силуэты на столе, то это 2D и коллизии зависят только от двух координат, а если мячик в трёхмерном баскетбольном зале, то он уже может осткочить и от кольца, но какие две координаты не выбирай, если мяч далёк от кольца по третей, то не отскочет. В плане? Эйси. Мяч на метр выше кольца, осткока нет. Влево-вправо и по вертикали? Эйси. Мяч на высоте кольца, но в плане в центре зала, отскока нет. Вдоль и по вертикали? Эйси. Мячь на высоте кольца и продольная координата тоже совпадает, но поперёк он на пол пути к стене, отскока нет. Это тоже 3D, даже если
вид (графика) в ортогональном плане, что есть 2D. Да и вообще физика может быть 3D, а может 2D: если у тебя греестся плоский лист, то достаточно всё смоделировать в плоскости листа, а если у тебя автомобилная гонка, то надо моделить и продольное движение, и поворот, и вертикальные реакции подвески, а это уже 3D. Даже если графика 2D вид сверху, но на крате, пусть условно, но обозначен трамлин и игрок с него прыгнул, то какое то время машина вообще не управляема, так как не имеет сцепленяи с дорогой. И на горбатом мосту вес в верхеней точке уменьшается, а масса нет, если ты на нём затеешь поворачивать, то пойдёшь юзом при меньшей скорости. Мне не достаточно залить стекло иллюминатора и сказать, что это дождь, персонаж находится прямо под дождём на палубе и нужна 3D картинка с погодой. Капля может упасть и на палубу, и за борт, если она упала на палубу, то дальше может ничего делать и не надо, а если за борт, то её видимость зависит от того, с какой высоты над палубой и на каком расстоянии от борта смотрим. И надо не столько отрисовать снос капель, а в первую очередь ветер нужен для парусов, флагов и движеняи корабля.

Добавлено через 6 минут
Цитата Сообщение от Mc X Посмотреть сообщение
физика,
я хочу собственный солвер, а не чужой движок, соотвественно вопрос не по API, а по моделированию.

Добавлено через 10 минут
Цитата Сообщение от Mc X Посмотреть сообщение
система частиц,
общие слова, ни одного алогритма/примера, закон изменения состояния частиц только упомятнут, но ни один не дан. Ладно, предположим, гравитацию я знаю. Но дождь не идёт в вакууме! А в воздухе на капли действует сопротивление воздуха и ветровой снос. Ни слова о том, как это делать. А огонь? Огонь тоже нужен. По какому состоянию меняется состояние его частиц, тоже не сказано. Для огня не описан даже имттер. В итоге по всей статье можно сделать разве что фонтан, да и то в штиль: в отличие от дождевых капель, капли и струи фонтана ни когда не падают ни с десяти километров, ни даже с сотни мтеров, что уменьшает скорость и аэродинамическое сопротивление при падении, а в штиль нет сноса.

Добавлено через 54 секунды
Пятая ссылка в статье - про флеш, я его не знаю.
0
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
04.06.2012, 15:16
taras atavin,
ты хотя бы примерно представляешь, какие должны быть ресурсы, чтобы точно рассчитать дождь? Огонь? Да и не получится точно, всегда будут применяться ЧМ для решения диф.уров (состояние объекта с течением времени - ну ты понимаешь?).
Т.е. слова интерполирование, аппроксимация и экстраполирование не должны быть для тебя пустым звуком.

Цитата Сообщение от taras atavin Посмотреть сообщение
А в воздухе на капли действует сопротивление воздуха
Нонсенс, серьезно. Твой ПК загнется, если будет сопротивление воздуха расчитывать

А по поводу темы. Зайди на хабр - там точно была статья про создание системы частиц для XNA, я видел! Где-то правда глубоко, поискать надо...
0
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
04.06.2012, 17:01
Физика частиц в общем случае описывается mg+F(ветра), естественно в векторном виде. Сопротивление воздуха вводится корректировкой g. Если необходима турбулентность, то вводим переменный вектор силы от завихрений. Реализовать можно только на GPGPU, но с высокой степенью реализма про вменяемый FPS можно забыть.

Огонь реализуется с помощью спрайтов. На сайте NVidea пример был и на нашем форуме ссылка где-то была. Дождь тоже оптимально спрайтами делать.

Все таки игра это не CAD система и время расчета очень ограничено.
0
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
04.06.2012, 18:55
Цитата Сообщение от XAHOK Посмотреть сообщение
Огонь реализуется с помощью спрайтов. На сайте NVidea пример был и на нашем форуме ссылка где-то была. Дождь тоже оптимально спрайтами делать.
Ну по-сути тоже частицы же?

Цитата Сообщение от XAHOK Посмотреть сообщение
Все таки игра это не CAD система и время расчета очень ограничено.
Да, я про то и говорю. Поэтому всегда малость смущают завления про "реалистичную" физику
0
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
05.06.2012, 08:27
Цитата Сообщение от Alex Smith Посмотреть сообщение
Ну по-сути тоже частицы же?
Нет, там не на системе частиц построено, а на заранее подготовленном и привязанном массиве спрайтов. Причем спрайты разных размеров. Получается красиво, но без художника тяжеловато их позиционировать относительно базовой модели.
0
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
05.06.2012, 18:16
XAHOK, ну тогда мы про разные подходы.
К примеру в Unity, который движок не из худших, огонь/горение/взрыв можно сделать из одного спрайта, через систему частиц. И причем так и делается в примерах - симпатично получается
А массив спрайтов - это спрайтовая анимация что-ли?
0
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
06.06.2012, 08:29
Цитата Сообщение от Alex Smith Посмотреть сообщение
XAHOK, ну тогда мы про разные подходы.
К примеру в Unity, который движок не из худших, огонь/горение/взрыв можно сделать из одного спрайта, через систему частиц. И причем так и делается в примерах - симпатично получается
А массив спрайтов - это спрайтовая анимация что-ли?
Не совсем. На объект накладывается несколько спрайтов с текстурами пламени разного типа (центральный, окраина, всполохи) в 5 и более слоев. Данные спрайты могут двигаться, а для всполохов можно применять процедурные текстуры. Получается красиво и гораздо менее прожорливо по ресурсам чем система частиц.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.06.2012, 12:21  [ТС]
Цитата Сообщение от Alex Smith Посмотреть сообщение
ты хотя бы примерно представляешь, какие должны быть ресурсы, чтобы точно рассчитать дождь? Огонь? Да и не получится точно, всегда будут применяться ЧМ для решения диф.уров (состояние объекта с течением времени - ну ты понимаешь?).
Абсолютная точность не достижима ни в цифре, ни на аналоговой технике, ни даже в физических моделях. А вот ты походу не понимаешь разницы между двумя разными приближениями. 2D дождь не просто не точен, он на столько груб, что должен идти вне сцены. Можно сделать дождь за окном, поливая из шланга перед самим окном, если все персонажи находятся в помещении. Но так нельзя сделать ни волны от капель, ни капли, скрывающиеся за оружием. Если персонаж под дождём, то в какой то зоне вокруг него дождь должен быть действительно трёхмерным и только там, где отдельные капли уже не различимы дождь можно убрать. Кроме того, для потребления ресурсов системой частиц вообще не имеют значения ни объём, ни размерность, а важно только количество частиц. Я ведь не кино снимаю и имею возможность моросить по капле в несколько часов хоть над миллиардом квадратных метров сразу, а ресурсов на это уйдёт меньше, чем на плотный 2D дождь за иллюминатором 20x20 сантиметров. Киношники же не имеют возможности накрывать дождевалкой сразу большие площади, если только не цифровыми же спецэффектами. А вот различить на глаз аппроксимацию ни один игрок как раз не сможет.

Добавлено через 10 минут
И так, вопрос о дожде: каким уравнением следует аппроксимировать зависимость аэродинамического сопротивления капли от воздушной скорости?

Добавлено через 2 минуты
Но в первую очередь нужна облачность, так как дожь с чистого неба будет выглядеть странновато.

Добавлено через 55 секунд
Как моделировать облака? Как их представлять в программе? Какими данными? И по каким алгоритмам они считаются? Для начала нет ни осадков, ни заметного ветра. Штиль, небо и идеально гладкая поверность океана. Надо сделать Солнце и облака и хоть как то окрасить небо, в том числе, чистые участки. Океан пока просто синий не только без волн, но и без каустики.

Добавлено через 5 минут
Потом начнёт появляться суша, потом оптика океана, потом скаттеринг неба, потом дождь, потом град, потом снег и только потом ветер. Молнии и полярное сияние сделаю в последнюю очередь, когда корабли уже пойдут и даже будут стрелять. И когда будут крепости и с действующей береговой артиллерией.
0
 Аватар для snake32
3511 / 1694 / 236
Регистрация: 26.02.2009
Сообщений: 8,471
Записей в блоге: 6
10.06.2012, 23:37
taras atavin, у вас есть рабочий код остальной программы без эффектов? Исходя из реального FPS можно будет делать предположения на сколько реалистичными можно моделировать эффекты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.06.2012, 23:37
Помогаю со студенческими работами здесь

Как делается масштабирование
Например есть такая команда &lt;input style=&quot;font-size: 24px; width: 100%;&quot; type=&quot;button&quot; value=&quot;Кнопка&quot; onclick=&quot;alert('Вы нажали...

Как это делается
Даётся задача, её надо решить на каком нибудь языке программирования, то есть написать на этом языке программу, решающую данную задачу, а...

Как это делается?
Необходимо поставить специалисту задачу, но для этого необходимо понять, что за специалист требуется. Пример того, что нужно сделать здесь:...

Как делается пессимизация?
Все знают, что существует пессимизация. после пессимизации сайта - тот опускается на пару сотен позиций по всем ключам (это тоже...

Как это делается?
Сколько существует натуральных чисел, для которых одновременно выполняются следующие условия: 1.Запись числа в семеричной системе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru