Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

> Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

> Графика, рендер, шейдеры
=Diablo=
сообщение 17.08.2010, 10:38
Сообщение #3381


Игроман
**********

Репутация:   430  
Группа: Участник
Сообщений: 892
Регистрация: 14.08.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа




Работы участников

Шейдеры от Diablo
Шейдеры из билда 2232 под финалку.
До

После


Скачать
Наработки cjayho
ECB Shaderpack
Официальный репозиторий

Описание
ECB-Shaderpack
Улучшенный набор шейдеров для игры S.T.A.L.K.E.R.: Shadow of Chernobyl

_____________________________________________________________________________
Основные возможности:
_______________________
1) Непрозрачный туман на R2, возможность переключения
из файла конфигурации прозрачный/непрозрачный туман
2) Исправлена "синюшность" изображения на R2
3) Эффект компенсационного светового следа на R2
4) Статический и динамический Depth of field на R2,
Размытие объектов при прицеливании (требует дополнительного скрипта)
5) Билдовский блум с краснинкой на R2, возможность
переключения тонмаппинга в режим, который был в билде 2218
6) Screen space ambient occlusion на R2
7) Правильная отрисовка сияния ламп на R1
8) Правильная отрисовка солнечного градиента на обоих рендерах
9) Полноценная отрисовка occlusion-lightmaps на R2
10) Микроструктурный бамп
11) Правильная отрисовка бликов на блестящих поверхностях
12) Автосатурация - попиксельное уменьшение насышенности слабо
освещенных объектов
13) Мягкие тени на R2
14) Экспериментальная возможность - правильные тени от деревьев на R2
15) Улучшенный Motion blur, более похожий на билдовский
16) Исправлена "кислотность" (перенасыщенность) солнечного освещения объектов на R2
17) Отражабельная вода на R2
18) GodRays на R2 + эффект пылинок в лучах.
19) Мягкие партиклы на R2
20) Мягкая вода на R2

Плюс множество регулировок и исправлений мелких недостатков обоих рендеров
Условия использования
_______________________
Данный продукт предоставляется под соглашением Creative Commons CC-BY 3.0,
Подробнее описано по адресу http://creativecommons.org/licenses/by/3.0/deed.ru
Составитель данного набора шейдеров - cjayho
Свежие ревизии находятся по адресу http://code.google.com/p/ecb-shaderpack/downloads/list
Установка
___________
Данный продукт тестировался под версиями игры 1.0004 и 1.0006
Установка сводится к копированию файлов в папку gamedata мода,
изначальный набор файлов предназначается для чистой игры. В случае
установки погодных модов необходимо правильно совместить файл
config/weathers/flares.ltx

Для более полной настройки шейдеров R2 под свой мод можно править файл
shaders/r2/config.h.
Для корректной работы теней нужно установить следующие переменные
в игровой консоли:

r2_sun_near_border 1
r2_sun_near 20


Благодарности
_______________

Sergy172 за идеи и тестирование экспериментальных веток.
-=Diablo=- за изначально портированные шейдеры из 2232
macron за отражабельную воду и наборы шейдеров из билдов 2217 и 2588
Билдоман за набор шейдеров из билда 2571
BAC9-FLCL, KamikaZZe за дельные замечания и критику
Shadows за неоценимую помощь в разработке и тестирование экспериментальных версий
Meltac <metzinger@gmx.net> (Его мод "Dynamic shaders" здесь: http://www.moddb.com/mods/dynamic-shaders)
за алгоритм Depth of Field. Код DoF используется с его разрешения.
Sky4CE за алгоритм SSAO
K.D. За алгоритмы мягкой воды, мягких партиклов, GodRays
Скриншоты
Скриншоты (Shadows Addon 0.6 Edition)

Скачать все наработки | Зеркало
Наработки ECB Team распространяются под условиями Creative Commons CC-BY.
Правки рендера от K.D.
Подходит как к чистой игре, так и к любым модам.
Изменения
- саншафты (команда r2_sun_shafts off/low/medium/high)
- мягкая вода (команда r2_soft_water on/off)
- мягкие партиклы (команда r2_soft_particles on/off)
- регулировка дальности отрисовки травы через консоль (r__detail_radius [49, 501])
- расширенная регулировка плотности травы (r__detail_density [0.02, 0.6])
- расширенная регулировка четкости текстур (r1_tf_mipbias/r2_tf_mipbias [-3.0, 3.0], только R1/R2)
- расширенная регулировка расстояния переключения на лоды (r__geometry_lod [0.1, 3.0])
- восстановлены тени от травы (r2_sun_details, R2)
- восстановлены блудмарки (r2_bloodmarks, R1/R2)
- правильные тени от солнца (R2)
- увеличенный видеобуфер (фикс ошибки "(bytes_need<=mSize) && vl_Count" на R2, связанной с перегрузками видеобуфера*)

* То есть теперь можно на полной динамике загрузить ресурсоёмкую карту типа болота из ЧН, поставить видимость в 4 километра и взрывать вокруг дымовые гранаты с ЧНовскими партиклами дыма (тоже жутко ресурсоёмкие).
Скриншоты
Мягкие партиклы (до и после)

Установка: закинуть содержимое в папку с установленным ТЧ (6 патч, более ранние патчи не поддерживаются и просить сделать под них аналогичное бессмысленно!)
Настройка: смотрите ogse_config.h
Нюансы:
- мягкая вода работает и без бинарников
- экзешник нужен для пыли в саншафтах и правки вылета перегрузки видеобуфера. Он основан на выложенным в свое время официальном экзешнике для 6го патча без защиты (отсутвие starforce).
- рендер-библиотека обеспечивает работу консольных команд, пыли в саншафтах и мягких партиклов.
Использование: где и как угодно. Не возбраняется указать автора.

Скачать
Часть наработок еще здесь


Сообщение отредактировал ForserX - 21.07.2020, 13:58
Перейти в начало страницы
 
227 страниц V  « < 168 169 170 171 172 > »   
Начать новую тему
Ответов
Yara
сообщение 30.12.2019, 05:37
Сообщение #3382


Опытный Геймер
*******

Репутация:   50  
Группа: Участник
Сообщений: 157
Награды: 2
Регистрация: 20.03.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


Для тех, кто правит двиг (улучшает тч / статику и т.п.):

связано с маской террейна, и на каком рендере она работает (60 строка)
тч - \xr_3da\xrRender\Blender_BmmD.cpp
зп - \Layers\xrRender\Blender_BmmD.cpp

а также возможность заставить компиль тч учитывать сглаживание, назначенное в 3д редакторе,
\xrLC\communicate.h, там параметр m_sm_angle установлен как 75 и используется в \xrLC\xrCalcNormals.cpp, CalcNormals() и кода там поболее чем в зп-варианте. Ещё встречается в \xrLC\xrMU_Model_Calc_normals.cpp, но там заремили, и уже используется значение 89.
Перейти в начало страницы
 
xrModder
сообщение 30.12.2019, 08:01
Сообщение #3383


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Yara @ 30.12.2019, 08:33) *
Для тех, кто правит двиг (улучшает тч / статику и т.п.):

связано с маской террейна, и на каком рендере она работает (60 строка)
тч - \xr_3da\xrRender\Blender_BmmD.cpp
зп - \Layers\xrRender\Blender_BmmD.cpp

а также возможность заставить компиль тч учитывать сглаживание, назначенное в 3д редакторе,
\xrLC\communicate.h, там параметр m_sm_angle установлен как 75 и используется в \xrLC\xrCalcNormals.cpp, CalcNormals() и кода там поболее чем в зп-варианте. Ещё встречается в \xrLC\xrMU_Model_Calc_normals.cpp, но там заремили, и уже используется значение 89.

Что?
Перейти в начало страницы
 
abramcumner
сообщение 30.12.2019, 10:24
Сообщение #3384


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Yara @ 30.12.2019, 05:33) *
а также возможность заставить компиль тч учитывать сглаживание, назначенное в 3д редакторе,
\xrLC\communicate.h, там параметр m_sm_angle установлен как 75 и используется в \xrLC\xrCalcNormals.cpp, CalcNormals() и кода там поболее чем в зп-варианте. Ещё встречается в \xrLC\xrMU_Model_Calc_normals.cpp, но там заремили, и уже используется значение 89.

Компилишь без -nosmg, вот тебе и используется сглаживание из 3д-редактора. На m_sm_angle хрлц при этом даже не посмотрит.

Правда между 3д-редактором и хрлц есть еще много слабых звеньев.
Перейти в начало страницы
 
Diesel
сообщение 30.12.2019, 15:32
Сообщение #3385


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(abramcumner @ 30.12.2019, 12:20) *
Цитата(Yara @ 30.12.2019, 05:33) *
а также возможность заставить компиль тч учитывать сглаживание, назначенное в 3д редакторе,
\xrLC\communicate.h, там параметр m_sm_angle установлен как 75 и используется в \xrLC\xrCalcNormals.cpp, CalcNormals() и кода там поболее чем в зп-варианте. Ещё встречается в \xrLC\xrMU_Model_Calc_normals.cpp, но там заремили, и уже используется значение 89.

Компилишь без -nosmg, вот тебе и используется сглаживание из 3д-редактора. На m_sm_angle хрлц при этом даже не посмотрит.
Правда между 3д-редактором и хрлц есть еще много слабых звеньев.


Во истину получается не так. Если на модели не запечен слой нормалей, то без носмг сглаживание вообще слетит до 0 у всех групп.

Если в 3d редакторе просто накинуть смутх и так оставить, то шансов на одекватную компиляцию нет. Перед сглаживание или до (что уже забыл), нужно закрепить нормали в модификаторе эдит нормалс.

Сообщение отредактировал Дизель - 30.12.2019, 15:36
Перейти в начало страницы
 
Yara
сообщение 30.12.2019, 18:37
Сообщение #3386


Опытный Геймер
*******

Репутация:   50  
Группа: Участник
Сообщений: 157
Награды: 2
Регистрация: 20.03.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(abramcumner @ 30.12.2019, 13:20) *
Компилишь без -nosmg, вот тебе и используется сглаживание из 3д-редактора.

Знаю, всё верно для зова припяти, но речь шла о тенях чернобыля.

Цитата(Дизель @ 30.12.2019, 18:28) *
Во истину получается не так. Если на модели не запечен слой нормалей, то без носмг сглаживание вообще слетит до 0 у всех групп.

Если в 3d редакторе просто накинуть смутх и так оставить, то шансов на одекватную компиляцию нет. Перед сглаживание или до (что уже забыл), нужно закрепить нормали в модификаторе эдит нормалс.

В 3д максе может и так, в майке по другому.

Перейти в начало страницы
 
xrModder
сообщение 30.12.2019, 18:46
Сообщение #3387


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Yara, как заставить ТЧ xrLC учитывать сглаживание от 3D редактора?
Перейти в начало страницы
 
Yara
сообщение 31.12.2019, 10:16
Сообщение #3388


Опытный Геймер
*******

Репутация:   50  
Группа: Участник
Сообщений: 157
Награды: 2
Регистрация: 20.03.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(xrModder @ 30.12.2019, 21:42) *
Yara, как заставить ТЧ xrLC учитывать сглаживание от 3D редактора?

Эхх, выше посты и были для людей знающих С+, может кто и сделает. Хотя, вроде тут проскакивало что можно как-то собирать двиг сталка на appveyor или я ошибся и всё не так, ну чтоб не ставить все эти студии и прочий хлам. Немного изучить сишку, да по экспериментировать с этим делом.

Вообщем, всех с Новым годом!
Перейти в начало страницы
 
xrModder
сообщение 31.12.2019, 11:24
Сообщение #3389


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Yara @ 31.12.2019, 13:12) *
Цитата(xrModder @ 30.12.2019, 21:42) *
Yara, как заставить ТЧ xrLC учитывать сглаживание от 3D редактора?

Эхх, выше посты и были для людей знающих С+, может кто и сделает. Хотя, вроде тут проскакивало что можно как-то собирать двиг сталка на appveyor или я ошибся и всё не так, ну чтоб не ставить все эти студии и прочий хлам. Немного изучить сишку, да по экспериментировать с этим делом.

Вообщем, всех с Новым годом!

Значит то что ты писал это просто "пустышка".
Перейти в начало страницы
 
xrModder
сообщение 01.01.2020, 01:57
Сообщение #3390


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Учим движка X-Ray читать полноценные "таблицы" погодных конфигурации...


Сообщение отредактировал xrModder - 01.01.2020, 02:16
Перейти в начало страницы
 
abramcumner
сообщение 01.01.2020, 23:08
Сообщение #3391


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


xrModder, прикольно.
А на sky_rotation забил?
Перейти в начало страницы
 
xrModder
сообщение 01.01.2020, 23:18
Сообщение #3392


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(abramcumner @ 02.01.2020, 02:04) *
xrModder, прикольно.
А на sky_rotation забил?

Нет, она находится в соседнем проекте.
Перейти в начало страницы
 
cjayho
сообщение 03.01.2020, 10:53
Сообщение #3393


Мастер Игры
************

Репутация:   248  
Куратор темы
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


цвет солнца можно вполне себе неплохо вычислять из положения солнца относительно горизонта.

и его цвет лучше вообще мерить в кельвинах, а не rgb. https://habr.com/ru/post/193142/

берем константы, например у горизонта солнце 3200К, в зените 5000К, и lerp-им промежуточное положение, потом пересчитываем в rgb, только учитываем туман и облачность - чем сильнее то или другое то тем сильнее обесцвечиваем яркость солнца и соответственно затемняем его, (при полной облачности или тумане солнца вообще нет).

То же самое с луной, у горизонта 2200К, в зените 4000К.

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


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
Shoкer
сообщение 03.01.2020, 14:46
Сообщение #3394


Кандидат Игровых Наук
******************

Репутация:   2153  
Группа: Участник
Сообщений: 3488
Награды: 4
Регистрация: 27.07.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


xrModder, красиво смотрится laugh.gif. Но имхо тогда уже лучше научить движок полноценные табличные форматы переваривать. Иначе первая же длинная строка заставит форматирование всех остальных столбцов исправлять, как у тебя с thunderbolt на скриншоте.

https://github.com/troldal/OpenXLSX
Хотя конечно работы тут побольше потребуется.


--------------------
Мне просто нравятся синие буквы под сообщением.
Перейти в начало страницы
 
cjayho
сообщение 03.01.2020, 14:57
Сообщение #3395


Мастер Игры
************

Репутация:   248  
Куратор темы
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (Shoкer @ 03.01.2020, 13:42) *
xrModder, красиво смотрится laugh.gif. Но имхо тогда уже лучше научить движок полноценные табличные форматы переваривать. Иначе первая же длинная строка заставит форматирование всех остальных столбцов исправлять, как у тебя с thunderbolt на скриншоте.

https://github.com/troldal/OpenXLSX
Хотя конечно работы тут побольше потребуется.


По-моему проще в формат sqlite паковать


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
xrModder
сообщение 03.01.2020, 15:02
Сообщение #3396


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Shoкer, "присобачить" XLS к движку из-за одной длинной словы в конфиге? Шутишь? laugh.gif
Не вижу в этом никакого смысла. Можно просто укоротить слово, а не сделать простое сложным, тем более легко адаптировать код отношении для обработки "табличных" конфигов погоды.

Сообщение отредактировал xrModder - 03.01.2020, 15:30
Перейти в начало страницы
 
xrModder
сообщение 03.01.2020, 21:40
Сообщение #3397


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(cjayho @ 03.01.2020, 13:49) *
цвет солнца можно вполне себе неплохо вычислять из положения солнца относительно горизонта.

и его цвет лучше вообще мерить в кельвинах, а не rgb. https://habr.com/ru/post/193142/

берем константы, например у горизонта солнце 3200К, в зените 5000К, и lerp-им промежуточное положение, потом пересчитываем в rgb, только учитываем туман и облачность - чем сильнее то или другое то тем сильнее обесцвечиваем яркость солнца и соответственно затемняем его, (при полной облачности или тумане солнца вообще нет).

То же самое с луной, у горизонта 2200К, в зените 4000К.

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

Неплохой вариант. Но тогда нужна интенсивность света Солнца (к примеру от 0 до 1), не представляю как отделить его от sun_color как sun_color_temperature и sun_intensity.
Перейти в начало страницы
 
cjayho
сообщение 05.01.2020, 02:58
Сообщение #3398


Мастер Игры
************

Репутация:   248  
Куратор темы
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (xrModder @ 03.01.2020, 20:36) *
Неплохой вариант. Но тогда нужна интенсивность света Солнца (к примеру от 0 до 1), не представляю как отделить его от sun_color как sun_color_temperature и sun_intensity.


паковать в трехмерный вектор(температура, насыщенность, яркость)?

-----

Зы, у меня были некоторые наработки в двигло, в environment.cpp, но недоделанные:

код

CODE
Fvector3 calc_temp( float temp ) // color temperature counter
{
    float r, g, b;

    temp /= 100.f;

    if( temp < 65.f ){
        r = 255.f;

        float green = temp - 2.f;
        g = (-155.25485562709179f - 0.44596950469579133f * green + 104.49216199393888f * log(green));

        if( temp > 20 )
        {
            float blue = temp - 10.f;
            b = (-254.76935184120902f + 0.8274096064007395f * blue + 115.67994401066147f * log(blue));
        }
        else
        {
            b = 0;
        }
    }
    else
    {
        b = 255.f;
        float red = temp - 55.f;
        r = (351.97690566805693f + 0.114206453784165f * red - 40.25366309332127f * log(red));
        float green = temp - 50.f;
        g = (325.4494125711974f + 0.07943456536662342f * green - 28.0852963507957f * log(green));
    }

    clamp( r, 0.f, 255.f ); // это можно перевести в фвектор и клампить одним махом
    clamp( g, 0.f, 255.f );
    clamp( b, 0.f, 255.f );

    Fvector3 out;

    out.x = r/255.f; // это можно делить одним махом как фвектор
    out.y = g/255.f;
    out.z = b/255.f;

    return out;
}

// цветовые температуры

float sun_maxtemp_nofog = 6000; // солнышко в зените без тумана
float sun_mintemp_nofog = 1400; // солнышко у горизонта без тумана
float sun_maxtemp_fog = 6500; // солнышко в зените в полный туман
float sun_mintemp_fog = 6000; // солнышко у горизонта в полный туман

float moon_maxtemp_nofog = 5500; // луна в зените без тумана
float moon_mintemp_nofog = 3000; // луна на горизонте без тумана
float moon_maxtemp_fog = 5500; // луна в зените в полный туман (а ее хоть будет видно?)
float moon_mintemp_fog = 5500; // луна у горизонта в полный туман

float hour_sunrise = 5.f; // когда всходит солнышко
float hour_sunset = 22.f; // когда заходит

float moon_multiplier = .3f; // насколько луна меньше светит чем солнце. Сейчас втрое меньше

void CEnvironment::calculate_dynamic_sun_dir()
{
    //if( CurrentCycleName != "auto" ) return;

    bool isMoon = fGameTime < 60.f*60.f*hour_sunrise || fGameTime > 60.f*60.f*hour_sunset;

    float fGameTime2 = isMoon ? fGameTime - (86400.f-60.f*60.f*12) : fGameTime;

        float g = (360.0f/365.25f)*(180.0f + fGameTime2/DAY_LENGTH);

        g = deg2rad(g);

        //    Declination
        float D = 0.396372f-22.91327f*_cos(g)+4.02543f*_sin(g)-0.387205f*_cos(2*g)+
            0.051967f*_sin(2*g)-0.154527f*_cos(3*g) + 0.084798f*_sin(3*g);

        //    Now calculate the time correction for solar angle:
        float TC = 0.004297f+0.107029f*_cos(g)-1.837877f*_sin(g)-0.837378f*_cos(2*g)-
            2.340475f*_sin(2*g);

        //    IN degrees
        float Longitude = -30.4f;

        float SHA = (fGameTime2/(DAY_LENGTH/24.f)-12.f)*15.f + Longitude + TC + 180.f;

        //    Need this to correctly determine SHA sign
        if (SHA>180) SHA -= 360;
        if (SHA<-180) SHA += 360;

        //    IN degrees
        float const Latitude = 50.27f;
        float const LatitudeR = deg2rad(Latitude);

        //    Now we can calculate the Sun Zenith Angle (SZA):
        float cosSZA = _sin(LatitudeR)
            * _sin(deg2rad(D)) + _cos(LatitudeR)*
            _cos(deg2rad(D)) * _cos(deg2rad(SHA));

        clamp( cosSZA, -1.0f, 1.0f);

        float SZA = acosf(cosSZA);
        float elevation = PI_DIV_2-SZA+PI_DIV_8;
        clamp( elevation, 0.f, 1.f );
        elevation = 1.f - elevation;
        //    To finish we will calculate the Azimuth Angle (AZ):
        float cosAZ = 0.f;
        float const sin_SZA = _sin(SZA);
        float const cos_Latitude = _cos(LatitudeR);
        float const sin_SZA_X_cos_Latitude = sin_SZA*cos_Latitude;
        if (!fis_zero(sin_SZA_X_cos_Latitude))
            cosAZ    = (_sin(deg2rad(D))-_sin(LatitudeR)*_cos(SZA))/sin_SZA_X_cos_Latitude;

        clamp( cosAZ, -1.0f, 1.0f);
        float azimuth = acosf(cosAZ);

        if (SHA<0)
            azimuth = 2*PI-azimuth;
    
    float mintemp_nofog = 0.f;
    float maxtemp_nofog = 0.f;
    float mintemp_fog = 0.f;
    float maxtemp_fog = 0.f;

    if( isMoon )
    {
        mintemp_nofog = moon_mintemp_nofog;
        maxtemp_nofog = moon_maxtemp_nofog;
        mintemp_fog      = moon_mintemp_fog;
        maxtemp_fog   = moon_maxtemp_fog;
    }
    else
    {
        mintemp_nofog = sun_mintemp_nofog;
        maxtemp_nofog = sun_maxtemp_nofog;
        mintemp_fog      = sun_mintemp_fog;
        maxtemp_fog   = sun_maxtemp_fog;
    }

    float sunbright = 1.f;

    if(    fGameTime >= hour_sunset*60.f*60.f) // когда всходит луна
    {
        float result = ((hour_sunset+1.f)*60.f*60.f) - fGameTime;
        result /= (60.f * 60.f);
        clamp( result, 1.f-moon_multiplier, 1.f );
        sunbright = 1.f - result;
    }

    if(    fGameTime <= (hour_sunrise-1.f)*60.f*60.f) // утром (нужно переделывать бо бажный участок кода)
    {
        float result = fGameTime - ((hour_sunset-1.f)*60.f*60.f);
        result /= (60.f * 60.f);
        clamp( result, moon_multiplier, 1.0f );
        sunbright = result;
    }

    if( elevation < 0.33f )
    {
        sunbright *= 3.f * elevation;
    }

    float fogginess = CurrentEnv.rain_density + .1f; // ugly hack to determine fog

    float temp_nofog = mintemp_nofog*(1.f-elevation)+maxtemp_nofog*elevation;
    float temp_fog = mintemp_fog*(1.f-elevation)+maxtemp_fog*elevation;
    float temp = temp_nofog*(1.f-fogginess)+temp_fog*fogginess;

    CurrentEnv.sun_dir.setHP    (azimuth,-elevation);
    CurrentEnv.sky_rotation += -azimuth - PI_DIV_4 - .2f; // little bigger than pi_div_4
    CurrentEnv.sun_color.set(calc_temp(temp));
    CurrentEnv.sun_color.mul(sunbright);

    CurrentEnv.hemi_color.mul(sunbright);
    CurrentEnv.ambient.mul(sunbright);
    CurrentEnv.sky_color.mul(sunbright);
    CurrentEnv.fog_color.mul(sunbright);

    CurrentEnv.sun_color.mul(1.f - fogginess);
}


Тут еще есть алгоритм более-менее правдоподобного движения светил по небу, стыренный из ЗП и подлатанный.

Сообщение отредактировал cjayho - 05.01.2020, 03:35


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
Zagolski
сообщение 09.01.2020, 16:25
Сообщение #3399


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


А в Сталкере в ванильных погодных конфигах цвет солнца из реальных хар-к брали или нет, кто-нибудь знает? С виду вроде как не очень похоже, хотя натуральное освещение все же прослеживается, если весь пост отключить. К примеру на статике.
Перейти в начало страницы
 
cjayho
сообщение 09.01.2020, 16:50
Сообщение #3400


Мастер Игры
************

Репутация:   248  
Куратор темы
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (Zagolski @ 09.01.2020, 15:21) *
А в Сталкере в ванильных погодных конфигах цвет солнца из реальных хар-к брали ?


А как вы это себе представляете? с фотки пипеткой что ли?


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
Zagolski
сообщение 09.01.2020, 17:43
Сообщение #3401


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(cjayho @ 09.01.2020, 16:46) *
с фотки пипеткой что ли?

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

Сообщение отредактировал Zagolski - 09.01.2020, 17:44
Перейти в начало страницы
 

227 страниц V  « < 168 169 170 171 172 > » 
Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.04.2024, 22:07