AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   У природы нет плохой погоды. (http://forum.aviaskins.com/forumdisplay.php?f=34)
-   -   [мод] недоАтмосферный мод v5.0 ( с движущимися облачками) (http://forum.aviaskins.com/showthread.php?t=2965)

ZloyPetrushkO 14.02.2013 02:29

[мод] недоАтмосферный мод v5.0 ( с движущимися облачками)
 
Вложений: 2
Доброго времени суток!
Давненько что-то я тут не флудил...это нужно немного исправить)
за сим представляю очередную свою недоподелку: следующее поколение недоатмосферного мода.

!на данный момент в аттаче лежит бета версия для тестирования!
тема на стадии оформления


основное отличие версии 5.0 от прошлых версий:
- дискретно движущиеся облака;
- добавлен "атмосферный коммандер" как сторонняя длл
- существует возможность написания стороннего "атмосферного коммандера" и подключения его через предоставленный "интерфейс"
- мод сделано под версию 4.10.1, однако, теоритически может работать под 4.11.1 или 4.09(требуется проверка)

Демонстрационное видео здесь:
http://www.youtube.com/watch?v=zv-YN...Ut2yrQ&index=1

немного подробнее про движение облаков:облака движутся дискретно, с равными промежутками по времени, за счет автоматического "пересоздания". соотвественно при пересоздании им добавляется смещение, равное скорости ветра на высоте*время между перезагрузками. плавное движение сделать невозможно по техническим причинам. однако, можно установить малое время между перезагрузками, что позволит сгладить дискретность.

и про атмосферный командер: по сути своей, расчет каждого смещения по каждой коор-те каждого облака в момент "перезагрузки" вынесен в отдельную длл, написанную на С++. иначе говоря, при пересоздании каждого отдельного облачка игра запрашивает коор-ты у новой отдельной дллки, которые(коор-ты) рассчитываются в этой же самой длл. атмосферный коммандер имеет связь как с явой, так и с др. длл, в т.ч. в него вводяться параметры, можно получить тестовую информацию и т.д.таким образом, используя стандартные "интерфейсы", можно при желании написать собственный коммандер, который будет полностью рассчитывать все процессы атмосферы.
на данный момент документация/исодный код текущего коммандера не выложен, однако это будет поправлено в будущем.

вот ка кто так...слов много, толку ноль и нифига непонятно. я как всегда :)

ближе к телу:
порядок установки на уже промодденый Ил-2:
1. создать резервную копию il2_corep4.dll
2. распаковать зип-архив из аттача в любую временную папку(!внимание! распаковывая архив вы принимаете всю отвественность на себя!)
3. положить в корневую папку Ила следующие длл-ки: il2_corep4.dll; atmcom.dll;zp.dll.
4. папку с модом(ZloyPetrushkO_Atm2_modv5 beta) положить в папку Mods
вроде все :)

в бета версии существует возможность менять время между дискретными шагами. для этого нужно в файл миссии в секции [Main] добавить параметр tickconst. по умолчанию параметр tickconst=30000, что примерно равно 30 сек. параметр может принимать значения от 3000(1 сек) до 300000(300 сек). значения параметра должно лежать в этих пределах и быть кратным 30.
пример:
[Main]
tickconst 300000
//это даст интервал между шагами облаков примерно 300 сек.

при тестировании вот на что прошу внимание:
0. для движения облаков нужно чтобы ветер был более 0 м/с
1. наличие/отсуствие фризов при "скачке" облаков
2. частота скачков облаков: почаще/пореже
3. тряска в облаках при погоде "ясно" (совпадает ли тряска с расположением облаков) при длительных плетах(более 30мин)
4. работа облаков на погоде "ясно" при полетах более 30 мин
5. рбаота мода в версиях 4.09 и 4.11.1

вот такие вот дела...
!ВНИМАНИЕ! распаковывая архив вы берете всю ответственность на себя!
!мод делался под процессоры intel(с поддержкой SSE2 и выше), работа на других процессорах не гарантируется!
!мод оптимизирован для работы с погодой "ясно"!


далее тему оформлю по ходу дела.

Dear English-speaking users! This is beta-version of this mod and theme is under constrution. I upload release version of mod on other modder forums with description when it will be ready.

ЗЫ: спасибо всем скачавшим и использующим мод :)
ЗЗЫ: отдельно хотелось бы выразить благодарность тем людям, кто поддерживал меня все это время и мотивировал продолжать работу. Серега, спасибо тебе за то, что смотивировал таки доделать и оформить. Кирилл, спасибо за то, что своими вопросами/предложениями/мыслями не давал мне все это время забыть/забросить работу :)

-----
UPD:
добавлена демонстрационная миссия(см. в аттаче)
и 2 видео как это выглядит у меня при разных параметрах tickconst
http://www.youtube.com/watch?v=-032rl4OaIU
http://www.youtube.com/watch?v=_xW4g-Addpo

ZloyPetrushkO 14.02.2013 02:30

Вложений: 1
немножко текста для мододелов.

Концепция следующая:
Вынесение всех вычислений касательно атмосферы в отдельный класс. Трудоемкие вычисления выносятся в отдельную dll с названием atmcom.dll, написанную на С++. Например: ветер можно реализовать как скалярное поле давлений или же векторное поле скоростей; спутный след и т.д. Пересчет будет производится в atmcom.dll, Atmosphere.class будет выступать посредником между игрой и atmcom.dll.
Архитектура выполнена открытой и модульной: при необходимости каждый желающий может изменить необходимый модуль. В некоторых случаях, потребуется изменение других модулей. К моду прилагаются исходники. corep4.dll и zpdll.dll не имеют исходников, т.к. выполнены на ассемблере. Поэтому при внесении изменений в atmcom.dll или классы игры рекомендуется сохранять совместимость с данными dll-ками. Atmospehre.class напрямую не взаимодействует с данными длл-ками. Atmcom.dll взамодействует напрямую. Поэтому для сохранения работоспособности нельзя нарушать адресацию и параметры функций, к которым обращается zpdll.dll. Например, нельзя: добавлять новые глобальные переменные, менять порядок этих функций, а так же параметры вызова. В atmcom.dll специально оставлены свободные глобальные переменные.

Описание схемы(см. вложение)
Принцип работы следующий.
При запуске(инициализации) игра вызывает Atmosphere.set(..) и Wind.set(…), который вызывает Atmosphere.set2(…), в котором рассчитываются и выставляются необходимые параметры атмосферы для java-class'a, а так же вызывается atmcom.dll/setatmparam, в котором рассчитываются и выставляются необходимые параметры в atmcom.dll. Установленные параметры используются при последующих расчетах.
Во время расчета в реальном времени игра вызывает RealFlightmodel.update(), который вызывает Atmosphere.update(). Этот метод выполняет следующий функционал: вызывает обновление при каждом тике atmcom.dll/updateatm(..) и обновление с заданной частотой (раз в какой-то время, по умолчанию задано 30 сек) вызывает пересоздание облаков командой Mission.cur().createClouds().
Метод atmcom.dll/updateatm(..) выполняет обновление всех необходимых парамтеров, в т.ч. по умолчанию перерасчет смещения deltaX.
Пересоздание облаков командой Mission.cur().createClouds() запускает сложный процесс в dll-ках игры, в том числе расчет координат в il2_corep4.dll. Полученные координаты облака перехватываются, передаются при помощи zpdll.dll в atmcom.dll/cloudx(),который вызывает atmcom.dll/updatecloudx(), где далее производится расчет новых координат и отправка обратно. По умолчанию, к текущей координате облака прибавляется смещение deltaX.

Grog 14.02.2013 05:01

Оо-о как!!:rolleyes:

Надо будет попробовать.

пы сы. Привет, Иван! И впрямь, давно тебя туточки не было.
Ты всё больше топчешь сейчас на БзС, видел, читал.:)
Оп-па! а для 4.11.1 мод этот должен подойти, а?:rolleyes:

Remontnik 14.02.2013 09:35

В архиве нет il2_corep4.dll; atmcom.dll;zp.dll.

ZloyPetrushkO 14.02.2013 09:46

Цитата:

Сообщение от Remontnik (Сообщение 112768)
В архиве нет il2_corep4.dll; atmcom.dll;zp.dll.

действительно. спс за инфу :) перезалил архив.
ЗЫ: прошу прощения, совсем старый стал, не заметил )

Цитата:

Сообщение от Grog (Сообщение 112766)
Оо-о как!!:rolleyes:

Надо будет попробовать.

пы сы. Привет, Иван! И впрямь, давно тебя туточки не было.
Ты всё больше топчешь сейчас на БзС, видел, читал.:)
Оп-па! а для 4.11.1 мод этот должен подойти, а?:rolleyes:

Юра, привет! :)
да, давненько меня тут н ебыло. а облачка то еще где то год назад были почти готовы...потом запал пропал, все никак доформить не мог =/

мод бл сделан под 4.10.1, но теоритически, должен идти на 4.11.1 и 4.09(нужно проверять)

Remontnik 14.02.2013 10:05

Сейчас на 4.11.1 проверю.:)

Remontnik 14.02.2013 10:16

На 4.11.1 плюс HSFX работает.

ZloyPetrushkO 14.02.2013 10:46

Цитата:

Сообщение от Remontnik (Сообщение 112772)
На 4.11.1 плюс HSFX работает.

спасибо за инфу! В момент скачка облаков все нормально?не фризит ли?

Karabas-Barabas 14.02.2013 11:52

С возвращением, очень вовремя.

Пока только облака движутся?
Ветер, направление и скорость можно будет менять?
Вообще бы тип погоды менять, понятно что тоже дискретно, но это уже будет прорыв в игре без дискретных миссий.

Remontnik 14.02.2013 12:21

Скачок заметен, меньше секунды. Скачок по времени одинаковый при tickconst 3000 и при tickconst 300000. На какой высоте поставить облака и какую скорость ветра, чтобы точно увидеть движение? В остальном - гораздо "атмосфернее", чем в дефолте. Отдельное спасибо за спутный след!:good: Можно ли попробовать версию без дискретности?
Karabas-Barabas, попробуй в HSFX Command & Control объект DynamicWeather - смена облачности в миссии. Там можно самому выставлять диапазон изменения ( от "безоблачно" до "гроза") и время между изменениями. Но меняется только облачность, не сама погода.

Karabas-Barabas 14.02.2013 13:45

Цитата:

Сообщение от Remontnik (Сообщение 112776)
Скачок заметен, меньше секунды. Скачок по времени одинаковый при tickconst 3000 и при tickconst 300000.

Так от интервала, по идее, и не должно зависеть время перерисовки облаков.

Цитата:

Сообщение от Remontnik (Сообщение 112776)
Karabas-Barabas, попробуй в HSFX Command & Control объект DynamicWeather - смена облачности в миссии. Там можно самому выставлять диапазон изменения ( от "безоблачно" до "гроза") и время между изменениями. Но меняется только облачность, не сама погода.

Не то, нужно именно изменение скорости и направления ветра, пусть и дискретное - можно же совсем мелкие "шажки" прописать, да и менять предполагается очень не быстро.
И изменение типа погоды = видимость, турбулентность и т.п. сопутствующие факторы.

Remontnik 14.02.2013 14:22

Цитата:

Сообщение от Karabas-Barabas (Сообщение 112779)
нужно именно изменение скорости и направления ветра, пусть и дискретное

Это,конечно,было бы здорово. Хотя, изменение скорости,в какой-то мере, присутствует в виде порывов.
Движения облаков я пока отчётливо не заметил. Даже если смотреть на тени от них на земле.

Dancing Bear 15.02.2013 00:17

С возвращением, Иван, чертовски приятно снова видеть тебя здесь. :)

ZloyPetrushkO 15.02.2013 02:02

Вложений: 1
Цитата:

Сообщение от Karabas-Barabas (Сообщение 112775)
Пока только облака движутся?
Ветер, направление и скорость можно будет менять?
Вообще бы тип погоды менять, понятно что тоже дискретно, но это уже будет прорыв в игре без дискретных миссий.

на данный момент движуться только облака.
изменение типа погоды(дискретное) есть уже давно:
http://www.youtube.com/watch?v=Cs2RD...Ut2yrQ&index=8
изменение парамтеров ветра возможно. но увы, я думаю меня на это уже не хватит =/
касательно реализации всего этого- мое мнение, которое я как то тебе рассказывал, не изменилось в принципе. на даный момент я подготавливаю свои исходники чтобы выложить их в общий доступ. надеюсь, это когда-нибудь кому-нибудь поможет реализовать эти фишки.

Цитата:

Сообщение от Remontnik (Сообщение 112776)
Скачок по времени одинаковый при tickconst 3000 и при tickconst 300000.

как правильно замтеил Костя- данный параметр не влияет на время отрисовки облаков(это зависит от производительности системы), а влияет на время между скачками.

Цитата:

Сообщение от Remontnik (Сообщение 112776)
На какой высоте поставить облака и какую скорость ветра, чтобы точно увидеть движение?

приложил в аттаче тестовую миссию с ветром в 50м/с(180км/ч). так же прилагаю 2 видео как это выглядит у меня(фпс изза фрапса на моей слабенькой машинке проседает очень сильно, поетому такое долгое время отрисовки облаков):
http://www.youtube.com/watch?v=-032rl4OaIU
http://www.youtube.com/watch?v=_xW4g-Addpo

Цитата:

Сообщение от Remontnik (Сообщение 112776)
Можно ли попробовать версию без дискретности?

в принципе, версия с малой дискретностью получается при выставлении параметра tickconst 3000 что соотвествует обновлнию в раз в 3 сек. если надо-могу собрать версию с частотой обновления например в 1 секунду.нужно? :)

Цитата:

Сообщение от Dancing Bear (Сообщение 112799)
С возвращением, Иван, чертовски приятно снова видеть тебя здесь. :)

Спасибо, взаимно :)

Remontnik 15.02.2013 09:01

Цитата:

Сообщение от ZloyPetrushkO (Сообщение 112802)

в принципе, версия с малой дискретностью получается при выставлении параметра tickconst 3000 что соотвествует обновлнию в раз в 3 сек. если надо-могу собрать версию с частотой обновления например в 1 секунду.нужно? :)


Дискретность с любой частотой обновления даёт скачок,к сожалению довольно заметный на моих настройках. А можно ли сделать версию без дискретности, т.е. прошлую версию ZloyPetrushkO_Atm2_modv4_3 для 4.11.1 ?

Karabas-Barabas 15.02.2013 11:36

Цитата:

Сообщение от ZloyPetrushkO (Сообщение 112802)
на данный момент движуться только облака.
изменение типа погоды(дискретное) есть уже давно:
http://www.youtube.com/watch?v=Cs2RD...Ut2yrQ&index=8

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

Цитата:

Сообщение от ZloyPetrushkO (Сообщение 112802)
изменение парамтеров ветра возможно. но увы, я думаю меня на это уже не хватит =/
касательно реализации всего этого- мое мнение, которое я как то тебе рассказывал, не изменилось в принципе. на даный момент я подготавливаю свои исходники чтобы выложить их в общий доступ. надеюсь, это когда-нибудь кому-нибудь поможет реализовать эти фишки.

Сделаем, надо уже вчера :)

ZloyPetrushkO 16.02.2013 00:16

Цитата:

Сообщение от Remontnik (Сообщение 112804)
Дискретность с любой частотой обновления даёт скачок,к сожалению довольно заметный на моих настройках. А можно ли сделать версию без дискретности, т.е. прошлую версию ZloyPetrushkO_Atm2_modv4_3 для 4.11.1 ?

хм...вроде 4.2/4.3 не рбаотали под 4.10.1....помню что делал адоптацию. вот в закромах у себя нашел версию 4.5, которая по идее является адаптацией под 4.10.1( и по идее должна рбаотать на 4.11.1)
но то что я нашел- у меня лично вылетает с ошибкой =/
ничего н еобещаю в общем...ибо уже не помню в чем там был косяк (((

зато вот у меня появилась идея сделать отключаемым движение облаков. это точно сделаем :)

Цитата:

Сообщение от Karabas-Barabas (Сообщение 112807)
Мне показалось, что меняется только тип облачности.
Надо вплоть до дождя и грозы.

Сделаем, надо уже вчера :)

ок, код уже готовлю к выкладыванию :)

Remontnik 16.02.2013 01:24

Я в ZloyPetrushkO_Atm2_modv5_beta заменил 684916A0E86D1CC8. Взял из ZloyPetrushkO_Atm2_modv4_3. В итоге: работает на 4.11.1, облака не двигаются, всё остальное вроде нормально - болтанка, спутный след, ветер.

Remontnik 17.02.2013 19:15

На версии 4.11.1 при запросе о направлении ветра, игра вылетает.

ZloyPetrushkO 17.03.2013 21:44

Цитата:

Сообщение от Remontnik (Сообщение 112822)
Я в ZloyPetrushkO_Atm2_modv5_beta заменил 684916A0E86D1CC8. Взял из ZloyPetrushkO_Atm2_modv4_3. В итоге: работает на 4.11.1, облака не двигаются, всё остальное вроде нормально - болтанка, спутный след, ветер.

в принципе, приелимое решение ИМХО.

Цитата:

Сообщение от Remontnik (Сообщение 112890)
На версии 4.11.1 при запросе о направлении ветра, игра вылетает.

но этот баг будет БЖСЭ...


Текущее время: 22:43. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot