[RenderEdge] Экспериментальная версия

» опубликован

Актуальная версия v0.1.1a

Особенности

Внимание! Тени работают крайне нестабильно, используют очень много оперативной памяти и сильно снижают FPS. Используйте их на свой страх и риск!

  • (+) Каскадные тени;
  • (+) Расчёт освещения в линейном пространстве;
  • (+) Physically Based Shading;
  • (+) ACES Tonemapping and Color Correction;
  • (+) Screen Space Reflections;
  • (+) Temporal Anti-Aliasing;
  • (+) Contact Shadows;
  • (-) Использование моделей из .obj, .3ds, .dae, .blend файлов;
  • (-) Модификация .mdx/.mdl формата моделей: добавление карт нормалей и .dds/.blp2 формата текстур;
  • (-) Поддержка пользовательских шейдеров для пост-эффектов и моделей;
  • (-) Модификация War3 Model Editor;
  • (-) Добавление новых возможностей в World Editor.
Баги:
  • Вылеты игры при переключении режима вертикальной синхронизации в главном меню в оконном режиме;
  • Некоторые пост-эффекты работают некорректно при ограниченном viewport;
  • Не работают тени ландшафта.

Установка

Папку можно разместить в любом месте на диске.

Требования:

Скриншоты

» Старая версия

Изменения

Следите за разработкой RenderEdge на Trello.
v0.1.1a
  * Добавлены контактные тени (Screen Space Ray-Traced Shadows);
  * Добавлена поддержка погодных эффектов;
  * Добавлен туман для скайбокса;
  * Улучшен Color Grading: добавлена отдельная настройка Shadows, Midtones и Highlights;
  * Добавлена возможность вручную задать гамму монитора: Output Device -  Explicit gamma mapping (LDR);
  * Добавлена возможность выбрать размер текстуры теней;
  * Добавлены расширенные настройки Ambient Occlusion;
  * Добавлена возможность скрыть интерфейс, отключить туман войны и тени юнитов в режиме Default Renderer;
  * Улучшен режим Debug Screen: отображение на весь экран;
  * Оптимизация Auto Exposure;
  * Оптимизация Rendering Pipeline;
  * Добавлены описания exe и dll файлов;
  * Исправлен баг: модели зданий при выборе места строительства не обрабатываются;
  * Исправлена некорректная работа Auto Exposure при ограниченном viewport;
  * Исправлена некорректная работа SSR при включенном Temporal AA;
  * Исправлена некорректная работа пост-эффектов при нестандартных настройках плоскостей отсечения камеры;
  * Исправлено влияние режима свободной камеры на отображение портрета;
  * Исправлено некорректное размытие SSAO при включённом downsampling;
  * Исправлены баги в JassAPI (конвертация real <=> float);
  * Исправлен сдвиг камеры при включении режима свободной камеры;
  * Исправлено влияние высоты ландшафта на высоту свободной камеры.

v0.1.0a
  * Добавлена поддержка анимированных текстур;
  * Добавлена поддержка полупрозрачных моделей;
  * Добавлена поддержка Unshaded материалов;
  * Добавлена поддержка Vertex Color;
  * Добавлена поддержка освещения скайбокса;
  * Добавлена поддержка текстур, размер которых не кратнен степени 2;
  * Улучшена функция скрытия интерфейса;
  * Улучшен Sky Light: добавлен параметр Blend Factor;
  * Улучшен Debug Point Light: добавлена возможность вручную задать координаты;
  * Улучшен Image Based Lighting;
  * Использование пиксельных отражений;
  * Добавлен параметр Culling Mode для теней;
  * Добавлена возможность выбрать формат и цветовое пространство монитора;
  * Добавлен Temporal Anti-Aliasing;
  * Добавлен эффект Screen Space Reflections;
  * Добавлен эффект Auto Exposure (UE4);
  * Улучшен Chromatic Aberration;
  * Обновлён SSAO: заменён на Scalable Ambient Obscurance;
  * Улучшен Bloom (увеличен максимальный радиус, добавлена возможность растянуть по   * горизонтали или вертикали);
  * Сохранение пропорций Lens Dirt текстуры при любом соотношении сторон экрана;
  * Сглаживание теперь применяется до остальных пост-эффектов;
  * Оптимизация Color Grading (запекание в LUT текстуру);
  * Отображение пост-эффектов только в пределах viewport;
  * Убрана возможность использовать Irradiance текстуру в качестве источника ambient освещения;
  * Убрана возможность включить улучшенную воду;
  * Загрузка и создание текстур и эффектов только по мере необходимости;
  * Обновлен конвертер d3d8 в d3d9;
  * Исправлен баг, при котором для юнитов и ландшафта использовался один и тот же направленный источник освещения;
  * Исправлены вылеты при рубке деревьев с включенными тенями;
  * Исправлены вылеты при сворачивании игры с включенными тенями;
  * Исправлены вылеты при включении режима свободной камеры;
  * Исправлены вылеты при установке маленького радиуса в эффекте Bloom;
  * Исправлено сворачивание запущенной в полноэкранном режиме игры при переключении режима вертикальной синхронизации;
  * Исправлено растягивание экрана при включенном интерфейсе и тенях;
  * Исправлена утечка памяти при включенном интерфейсе и пост эффектах;
  * Исправлено некорректное отображение SSAO при включённом режиме свободной камеры;
  * Исправлена функция проекции SSAO и SSR текстур на экран;
  * Исправлена некорректная гамма коррекция скайбокса при включенной пост-обработке;
  * Исправлена некорректная работа Dithering;
  * Исправлен некорректный цвет стандартных точечных источников света;
  * Запрет на отключение интерфейса и включение режима свободной камеры в главном меню игры и во время загрузки карты;
  * Динамическая очистка неиспользуемой памяти, занимаемой тенями;
  * Исправлено некорректное значение параметров Height и Density при использовании тумана;
  * Исправлена загрузка текстур из .mpq архивов;
  * Исправлена некорректная яркость точечных источников света.

v0.0.2a
  * Новый пост-эффект Bloom;
  * Добавлены настройки Lens Dirt;
  * Добавлена возможность протестировать самосветящиеся материалы (см. вкладку Material);
  * Unshaded материалы выключены по умолчанию, их можно включить на вкладке Material;
  * Исправлены проблемы с конвертацией цвета стандартных источников света/тумана в линейное пространство;
  * Исправлена проблема, при которой нельзя было менять освещение в картах, где была вызваны функция SetDayNightModels("", "");
  * Добавлен счётчик памяти, используемой варкрафтом;
  * Debug Screens теперь работают.

v0.0.1a
  * Первая стабильная сборка.


Просмотров: 35 732



» Лучшие комментарии


Кристофер #151 - 2 года назад 0
Интерфейс можно будет настраивать? Допустим, убрать весь стандарт, а иконки героев помещать внизу.
Molecyla #152 - 2 года назад 0
Кристофер, или вообще удалить интерфейс полностью и оставить только меню и задания
darkowlom #153 - 2 года назад 0
Molecyla, Снести интерфейс всегда можно было, главное что черной рамки нет
Molecyla #154 - 2 года назад 0
darkowlom, я это и имел ввиду
ENAleksey #155 - 2 года назад (отредактировано ) 9
К сожалению, не всё так просто с интерфейсом. При таком подходе, что я продемонстрировал, место клика курсора будет не совпадать с его истинными координатами. Кроме этого, даже если получится переместить кнопки, их кликабельная область останется на старом месте.
Остаётся вариант полностью отключить стандартный интерфейс и рисовать поверх новый.
В версии, которая должна работать в стандартных картах, будет сохранён стандартный интерфейс с возможностью его полного скрытия и отрисовки изображений, текста и кнопок поверх старого. А чтобы добиться наилучшего результата, нужно настраивать полную версию мода для конкретной карты, полностью представляя, что вам нужно.
  • Интеграция AntTweakBar и редактирование игрового источника света

И кажется я понял, как приспособить разрешение в игре для широкоформатных мониторов! Хотя и нельзя делать поспешные выводы, но если всё получится, то я уже совсем скоро смогу выпустить небольшой патч, исправляющий проблему с современными мониторами!
Melissa #156 - 2 года назад 0
И вновь прошу скинуть весь варик с уже установленным всем. Ну не идёт у меня, как ни пробуй.
Залей на Я,Д, там и аплоад и даунлоад быстрый
ENAleksey #157 - 2 года назад (отредактировано ) 1
Melissa, привет, я уже писал, что проблема в SharpCraft'е, и её единственное решение здесь, в 133 комментарии.
Мод начнёт запускаться у всех без проблем, когда я избавлюсь от шарпкрафта в пользу мода Александра, который на данный момент имеет небольшую проблему, из-за которой я пока и не могу отказать от SharpCraft. Но, всё же, это произойдет и довольно скоро (а может и нет...)
Melissa #158 - 2 года назад 0
так нужно какие то правки реестра делать что ли или...?
JaBeN_Симфер #159 - 2 года назад 0
Я только добавил запуск от администратора
ENAleksey #160 - 2 года назад 0
JaBeN_Симфер, у всех по-разному устанавливался варкрафт, у кого-то была лицензия, а у некоторых пиратка с кастомным установщиком и настройками. Так что у каждого могут возникнуть индивидуальные проблемы с запуском, решать их тоже приходится индивидуально.
JaBeN_Симфер #161 - 2 года назад 0
ENAleksey, понял. У меня пиратский инсталлятор с версией 1.16, а поверх фулл патч 1.26. Во времена 1.16 всяких репаков и левых установщиков еще небыло.
Кстати, вот ссылка на этот инсталлятор docs.google.com/uc?export=download&confirm=4cyb&id=0B4Kc...
ENAleksey #162 - 2 года назад 0
Melissa, ладно, кидаю установщик, которым воспользовался я.
Melissa #163 - 2 года назад 0
Хех, что ж, ничего не изменилось :D
koloff #164 - 2 года назад 0
ENAleksey, Ну что, можно будет поддержку полноценного широкого формата Вару прикрутить? Для меня тема животрепещущая, я сделал пару синематик сериалов и лил их на Ютуб в формате 4:3, потому что при 16:9, Вар довольно существенно искажал картинку. И сейчас, я уже пересмотрел было своё решение и хотел плюнуть на искажения картинки и лить в 16:9, и вот, получается, возможен идеальный вариант?
=)
Alexander12 #165 - 2 года назад (отредактировано ) 0
koloff:
ENAleksey, Ну что, можно будет поддержку полноценного широкого формата Вару прикрутить? Для меня тема животрепещущая, я сделал пару синематик сериалов и лил их на Ютуб в формате 4:3, потому что при 16:9, Вар довольно существенно искажал картинку. И сейчас, я уже пересмотрел было своё решение и хотел плюнуть на искажения картинки и лить в 16:9, и вот, получается, возможен идеальный вариант?
=)
можно, но есть минус, переводом экранных координат в игровые, пытался это исправить, пока безуспешно, есть пару догадок, но пока Алексея нет в скайпе.
ENAleksey #166 - 2 года назад (отредактировано ) 0
koloff, да, именно эта проблема и существует, но если нужно использовать widescreen fix только для синематиков, то могу завтра скинуть то, что есть на данный момент. Признаю, что позаимствовал исходники у пользователя под ником ZUKMAN, моя версия действовала по схожему принципу, только вместо сохранения оригинальных пропорций игрового поля, я рисовал его под интерфейсом.
koloff #167 - 2 года назад 0
ENAleksey, Я тебе не тороплю, упаси боже, делай всё как надо, всё равно пока, ещё не скоро мой "Страж" в "режиссёрке" выйдет, я сейчас пилю все три серии сразу. Мне интересен сам вопрос в принципе, и он меня - да, только для синематиков интересует, лучше я уж дождусь финалки, чем шаманить с сырыми патчами. И вот такой вопрос ещё, предположим, что ты выпустил свой патч и он работает, получается, что камеры у меня в сериале будут показывать на 20% больше картинки? И мне придётся дорабатывать каждый вид из камер, который есть в моей машиниме? Как минимум, мне придётся всем камерам дистанцию до цели сократить, что бы в кадр вошло то, что нужно и ничего больше?
ENAleksey #168 - 2 года назад 0
Да, только увеличится не дистанция, а угол обзора (FoV) и придётся подстраивать сцену под новое значение fov, либо просто приблизить камеру.
Но я все-таки скину текущую версию, может всё устроит.
koloff #169 - 2 года назад 0
ENAleksey, А как с загрузочными экранами будет дело обстоять?
Нужно будет пересобирать под новое разрешение? Пропорции ведь другие будут?
ENAleksey #170 - 2 года назад 2
А как с загрузочными экранами будет дело обстоять?
Отношение сторон меняется только на игровом поле, интерфейс остаётся растянутым. Можно, конечно, изменить aspect ratio и для всего интерфейса, только придётся перерисовывать все стандартные текстуры, так что то, что сейчас имеем - оптимальный вариант.

Тем временем, до выхода альфа версии мода остаётся совсем немного времени.
Вкратце расскажу и покажу, что уже реализовано:
  • Замена стандартного per-vertex освещение на попиксельное:
  • Замена линейного значения ambient компонента освещения на кубическую irradiance текстуру:
  • HDR Lighting и пост-эффекты:
GF RaiseD #171 - 2 года назад 0
Воронцов, это ты? Меню настройки HDR напоминает аналогичное меню в ENB
ENAleksey #172 - 2 года назад 0
Это же AntTweakBar, его все, кому не лень, используют, в том числе и Борис.
ENAleksey #173 - 2 года назад 4
Идём дальше!
  • Реализована система отрисовки GUI. Признаю, что взял её отсюда.
Оставлю только создание картинок и текста, все дополнительные элементы управления можно будет сделать самостоятельно на Jass.
JesusHipster #174 - 2 года назад 0
Интересно почему это еще не стало стандартом для модмейкеров
AlakFrost #175 - 2 года назад 3
Очень крутой функционал, продолжайте разработку пожалуйста, не забрасывайте!
darkowlom #176 - 2 года назад 0
У меня проблемка другого характера, все запускается, только грузит абсолютно пустую карту
Tumart #177 - 2 года назад 0
Автор обещал залить в скором времени актуальную версию, пока что здесь старая )
ENAleksey #178 - 2 года назад 2
Да, я выложу последнюю версию в течение этой недели. Главное нововведение - отказ от SharpCraft и избавление от всех файлов Nirvana, так что мод запустится даже у Мелиссы.
darkowlom #179 - 2 года назад 0
ENAleksey, аллилуйа, давно ждал)
Кристофер #180 - 2 года назад 6
darkowlom, когда мод запустится у Мелиссы?
Clamp #181 - 2 года назад 0
Чрезвычайно круто, только узрел. Не думал взять свои навыки и пойти в геймдев, мб даже со своим движком?
ENAleksey #182 - 2 года назад 0
philosoph
вы ещё какую то игру делаете?
Уже 6 лет (но только у себя в голове). Очень давно хотел сделать rpg карту для варкрафта с крутым сюжетом и управлением на стрелочках :) Со временем понял, что всё, что я задумал реализовать невозможно и решил сделать игру на Unity3d, даже забросил варкрафт (правда только на две недели), но
у меня уже столько сделано в варкрафте...
А дальше я наткнулся на мод Nirvana для варкрафта, где автор реализовал Normal Mapping, Shadow Volumes и различные пост процессы. И я решил продолжить его дело.
За эти годы скопилось достаточно идей для хорошей rpg игры, каждую из которых я тщательно продумывал, надеюсь, что получится что-то очень интересное.
Если интересно, то у меня в планах игра по вселенной "Трое из Леса" Юрия Никитина.

я выложу последнюю версию в течение этой недели
Даже не знаю, успею ли доделать, просто вообще времени не хватает, а завтра ещё и в другой город на день уезжаю.
Сразу предупрежу, что я собираюсь выложить не ту версию, за которую я взялся недавно (комментарий 170), а самую первую с PBS и использованием .obj моделей. Она будет не особо интересна тем, кто хочет её как-либо настроить для своего проекта, это просто демонстрация того, на что способен WarCraft.
darkowlom #183 - 2 года назад 0
выложить не ту версию
А собственно почему?
ENAleksey #184 - 2 года назад 0
darkowlom, потому, что я решил не выкладывать какие-либо демонстрации до релиза. А релиз состоится, как только я смогу реализовать поддержку custom natives.
darkowlom #185 - 2 года назад 0
ENAleksey, надеюсь это будет отключаемая функция?
ENAleksey #186 - 2 года назад (отредактировано ) 0
darkowlom, нет, без кастомных нативок никак не обойтись при работе с интерфейсом. Можно, конечно, но, думаю, что не многие решатся писать плагины для моего мода на c++, да и саму систему плагинов как-то не хочется писать, к тому же я не хочу, чтобы мод состоял из большого количества файлов.
darkowlom #187 - 2 года назад 0
ENAleksey, ок, тогда такой вопрос. Это не вызовет конфликтов при мультиплеере, если у оппонента отсутсвует мод? НАпример только у одного игрока отключен интерфейс, ну и тому подобное?
ENAleksey #188 - 2 года назад (отредактировано ) 0
darkowlom, о сетевой игре я пока не думал, в основном мод рассчитан на одиночные карты. Запускать карты, где используется объявление кастомных нативок, всё ещё не получится без использования мода, но это происходит из-за особенности самого варкрафта.
А, чтобы играть по сети с новыми интерфейсом, всем участникам сетевой игры придётся запускать карту через специальный лончер. Если в карте не используются функции отрисовки пользовательского интерфейса, никаких проблем не будет.
darkowlom #189 - 2 года назад 0
Если в карте не используются функции отрисовки пользовательского интерфейса, никаких проблем не будет.
Вот это хорошо)
ENAleksey #190 - 2 года назад 12
Свершилось!
Я буквально только что смог добавить Custom Native! Всё работает идеально!

Но в погоне за красивым и удобным видом рабочего пространства своего проекта, я раскидал весь код по классам. И в итоге проект перестал компилироваться(
Теперь нужно переделать всё так, чтобы не выскакивало ни каких ошибок, и можно будет выкладывать полноценную альфа версию.

И, думаю, что теперь не так обязательно выкладывать первую версию мода (прямо сейчас). Лучше уделить всё время на основную версию RenderEdge, чтобы скорее релизнуть проект.
alexprey #191 - 2 года назад 0
ENAleksey, предлагаю разместить на гитхабе с исходным кодом! Даешь OpenSource в массы!)
ENAleksey #192 - 2 года назад 0
alexprey, конечно, но я уже писал, что не выложу исходники, до завершения работы над проектом.
А Jass API я делал, опираясь на исходники YDWE.
alexprey #193 - 2 года назад 0
ENAleksey, до первой версии?
Андреич #194 - 2 года назад 0
рад что есть прогресс..)
ENAleksey #195 - 2 года назад 0
alexprey, до завершения основной версии.
Альфа версия будет содержать только отрисовку интерфейса, а полная - улучшение освещения и пост-эффекты.
Андреич, спасибо, очень приятно!
theBeyhut #196 - 2 года назад 0
вау, это просто восхитительно, серьёзно, я просто в недоумении, что у кого-то хватит смелости улучшить рендер в варике, а тут такое... Если в дальнейшем ещё добавится возможность использования других текстур (Хотя бы AO и Normal), будет вообще сказка. Ещё хотелось бы, чтобы ты расписал как, можно использовать свою наработку для карт с богатым импортом, думаю кто-то да согласился бы прорекламировать твою наработку, мол с этой штукой графика в карте будет лучше в 10 раз, список всего, что появится (непонятные слова для школьников в списках). И лично меня заинтересовало.
GF RaiseD #197 - 2 года назад 0
Выдаёт сообщения "CreateEnvMapFailed" и "CreateIrradMapFailed". В остальном - черный экран. Фикс в реестре не помогает (не требуется). Что делать?
ENAleksey #198 - 2 года назад (отредактировано ) 5
GF RaiseD, это была старая версия, её исходники я не сохранил. Обновление я выложу, но позже, когда релизну основную версию.
На данный момент готовы следующие Custom Natives:
» Input API
native int GetMouseX()
native int GetMouseY()
native int GetWheelDelta()
native void SetMousePos(int x, int y)
native void TriggerRegisterMouseWheelEvent(trigger trig)
native void TriggerRegisterMouseEvent(trigger trig, int iButton, int state)
native int GetTriggerKey()
native bool IsKeyDown(int iKey)
native void TriggerRegisterKeyEvent(trigger trig, int iKey, int state)
native int GetScreenWidth()
native int GetScreenHeight()
» Misc API
native float FPS()
native float DeltaTime()
native int COLOR_ARGB(int a, int r, int g, int b)
native void ShowCursor(bool isShow)
» GUI API
native int GUICreateInstance(int id, int left, int top, int width, int height)
native int GUISetText(int id, bool defSize, string text, int argb)
native int GUISetTexture(int instID, int texID)
native void GUISetBounds(int id, int left, int right, int top, int bottom)
native void GUISetCallback(int id, trigger trig, int iButton)

native int GUICreateTextureFromFile(int id, string filename)
native int GUICreateEmptyTexture(int id, int argb)
Осталось добавить ещё несколько функций для работы с GUI и возможность поиска текстур в .mpq, .w3x архивах и в памяти варкрафта:
native void GUIRemove(int id)
native void GUIShow(int id, bool isShow)

» Вот пример того, как это будет выглядеть на jass:
#define IMG_TestTexture  = 0
#define GUI_TestButton  = 0

void InitInterface()
{
    trigger test1 = CreateTrigger();
    TriggerAddAction(test1, function GUITest);

    GUICreateTextureFromFile(IMG_TestTexture, "Textures\\human-transport-slot.png");
        
    GUICreateInstance(GUI_TestButton, 500, 500, 64, 64);
    GUISetTexture(GUI_TestButton, IMG_TestTexture);
    GUISetCallback(GUI_TestButton, test1, MB_Left);
}
» Или через специальную структуру, написанную на jass:
#define IMG_TestTexture  = 0
#define IMG_Orange         = 1

GUI_Manager array MainGUI

void InitTextures()
{   
    GUICreateTextureFromFile(IMG_TestTexture, "Textures\\human-transport-slot.png")
    GUICreateEmptyTexture(IMG_Orange, 0xffffa500)
}

void InitInterface()
{
    MainGUI[0].AddButton(0.5, 0.5, 0.04, 0.04 * aspectRatio, IMG_TestTexture)
    MainGUI[0].SetCallback(MB_Left, function GUITest0)
    MainGUI[0].SetCallback(MB_Right, function GUITest2)
        
    MainGUI[1].AddButton(0.1, 0.2, 0.04, 0.04 * aspectRatio, IMG_Orange)
    MainGUI[1].SetCallback(MB_Left, function GUITest1)
        
    MainGUI[2].AddLabel(0.6, 0.7, 0.04, 0.04 * aspectRatio, "RenderEdge", 0xff09ff00)
    MainGUI[2].SetCallback(MB_Left, function GUITest2)
}
Вид из игры:
Андреич #199 - 2 года назад 0
я уже весь в предвкушении..)
ENAleksey #200 - 2 года назад (отредактировано ) 0
Обновил функцию GUICreateTextureFromFile(...): реализовал загрузку текстур, импортированных в карту, и их поиск в стандартных архивах варкрафта (war3.mpq, war3x.mpq). На данный момент поддерживаемые форматы текстур - .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, и .tga. Осталось добавить поддержку .blp, что не составит особого труда.