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

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

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

Особенности

  • (+) Каскадные тени;
  • (+) Расчёт освещения в линейном пространстве;
  • (+) 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.

Скриншоты

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

Установка

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

Требования:

Редактирование стандартных шейдеров

Всего 4 шейдера, которые можно редактировать: Standard.fx, Shadows.fx, PostProcess.fx и Skybox.fx. Они должны быть скомпилированы с помощью FXC, находиться в папке Shaders и иметь расширение .cso.


В редакторе реестра можно включить опцию, позволяющую загружать файл настроек, шейдеры и текстуры из папки с RenderEdge: HKEY_CURRENT_USER\Software\RenderEdge\AllowLocalFiles
Последовательность поиска ресурсов: загруженная карта, папка с RenderEdge, архив RenderEdge_exp.mpq.

Для подключения RenderEdge к Jass New Gen Pack (exp. 2) отредактируйте файл wehack.lua следующим образом:
» wehack.lua
-- # begin RenderEdge #
RenderEdgePath = grim.getregpair("HKEY_CURRENT_USER\\Software\\RenderEdge", "InstallPath")
haveRenderEdge = grim.exists(RenderEdgePath .. "\\RenderEdge.exe")

function toggleRenderEdgeDebug(checked)
    if checked then
		grim.setregdword("HKEY_CURRENT_USER\\Software\\RenderEdge", "Debug", 1)
	else
		grim.setregdword("HKEY_CURRENT_USER\\Software\\RenderEdge", "Debug", 0)
	end
end

function toggleRenderEdgeAllowLocalFiles(checked)
    if checked then
		grim.setregdword("HKEY_CURRENT_USER\\Software\\RenderEdge", "AllowLocalFiles", 1)
	else
		grim.setregdword("HKEY_CURRENT_USER\\Software\\RenderEdge", "AllowLocalFiles", 0)
	end
end

if haveRenderEdge then
	RenderEdgeMenu = wehack.addmenu("RenderEdge")
	
	RenderEdgeEnabled = TogMenuEntry:New(RenderEdgeMenu, "Run with RenderEdge", nil, true)
	
	RenderEdgeDebug = TogMenuEntry:New(RenderEdgeMenu, "Debug Mode", 
	    function(self) toggleRenderEdgeDebug(self.checked) end, false)
	if grim.getregpair("HKEY_CURRENT_USER\\Software\\RenderEdge", "Debug") == 1 then
		wehack.checkmenuentry(RenderEdgeMenu, RenderEdgeDebug, 1)
	else
		wehack.checkmenuentry(RenderEdgeMenu, RenderEdgeDebug, 0)
	end
	
	RenderEdgeAllowLocalFiles = TogMenuEntry:New(RenderEdgeMenu, "Allow Local Files", 
	    function(self) toggleRenderEdgeAllowLocalFiles(self.checked) end, false)
	if grim.getregpair("HKEY_CURRENT_USER\\Software\\RenderEdge", "AllowLocalFiles") == 1 then
		wehack.checkmenuentry(RenderEdgeMenu, RenderEdgeAllowLocalFiles, 1)
	else
		wehack.checkmenuentry(RenderEdgeMenu, RenderEdgeAllowLocalFiles, 0)
	end
end
-- # end RenderEdge #

function testmap(cmdline)
	if haveRenderEdge and RenderEdgeEnabled.checked then
		local pos = string.find(cmdline, ".exe")
		cmdline = string.sub(cmdline, 5 + pos)
		cmdline = RenderEdgePath .. "RenderEdge.exe " .. cmdline
	end
	
	if wh_opengl.checked then
		cmdline = cmdline .. " -opengl"
	end
	if wh_window.checked then
		cmdline = cmdline .. " -window"
	end
	wehack.execprocess(cmdline)
end

Изменения

Следите за разработкой RenderEdge на Trello.
v0.1.2a
  * Добавлена возможность выбора температуры направленного источника света;
  * Добавлена обработка стандартных теней юнитов на воде;
  * Добавлена возможность выбрать единицу измерения интенсивности точечных источников света;
  * Добавлена возможность использовать улучшенную матрицу проекции;
  * Добавлена возможность выбора Culling Mode для рендеринга теней;
  * Добавлена возможность загрузки текстур и шейдеров из папки с RenderEdge (AllowLocalFiles в реестре);
  * Добавлена возможность загрузки шейдеров из карты;
  * Добавлена опция, позволяющая исправить дрожание скайбокса при перемещении камеры;
  * Чтение настроек из RenderEdge.ini (поиск файла в карте, в папке с RenderEdge (при включенном AllowLocalFiles), в .mpq архивах);
  * Теперь опция Disable Unit Shadows отключает тени юнитов и на земле, и на воде;
  * Уменьшено потребление оперативной памяти при использовании каскадных теней;
  * Снято ограничение на количество объектов, способных одновременно откидывать тени;
  * Улучшено качество теней;
  * Улучшен интерфейс настроек;
  * Улучшен режим свободной камеры: камера от первого лица, нет зависимости от высоты ландшафта;
  * Отключены мягкие тени (можно включить, отредактировав шейдер ShadowCommon.fxh);
  * Тени не рендерятся если игра на паузе;
  * Отображение версии RenderEdge в главном меню игры в правом нижнем углу;
  * Оптимизация Debug Screen;
  * Исправлен баг: модель основания здания имела освещение юнитов вместо ландшафта, и откидывала тени;
  * Исправлена некорректная интенсивность точечных источников света;
  * Игра больше не вылетает при использовании теней;
  * Исправлено периодическое исчезание теней при перемещении и вращении камеры;
  * Тени ландшафта снова работают корректно.

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
  * Первая стабильная сборка.


Просмотров: 46 488



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


DemonoiD #301 - 1 год назад 0
ENAleksey, кстати, возможно ли к каждой модельке и/или эффекту прикрутить отдельный параметр градиента тени? От 0 до 100%. Было бы свежо и молодежно.
ENAleksey #302 - 1 год назад (отредактировано ) 7
DemonoiD, зачем? Так никто не делает, может вы имели ввиду такой эффект?
Screen Space Ambient Occlusion:
прикреплены файлы
alexprey #303 - 1 год назад 1
ENAleksey, ой, а чего как зернисто то?
ENAleksey #304 - 1 год назад (отредактировано ) 0
alexprey, просто я ещё не реализовал размытие текстуры, всё руки не дойдут до этого.
mishanka122 #305 - 1 год назад 0
ENAleksey, может он имел ввиду альфа канал тени? если нет, то я бы задал такой вопрос
alexprey #306 - 1 год назад 0
mishanka122, нет, я про картинку в целом при включенном SSAO. И на самом деле это не очень похоже на SSAO
ENAleksey #307 - 1 год назад (отредактировано ) 0
прикреплены файлы
alexprey #308 - 1 год назад 0
ENAleksey, аа, т.е. блюр по этой зернистой картинке сделает нормальное отображение?
Просто я лично делал немного не так ssao, я рендерил в тектуру в 1.5 большую экрана и потом просто ужимал её до размера экрана, тем самым сглаживая эти лесенки
mishanka122 #309 - 1 год назад 0
alexprey, а я про коммент демонойда
ENAleksey #310 - 1 год назад 0
mishanka122, но для чего это может пригодиться?
JesusHipster #311 - 1 год назад 0
острота и несовершенство моделек > мыло
mishanka122 #312 - 1 год назад 0
просто чуть опоздал с комментом
DemonoiD #313 - 1 год назад 0
ENAleksey, так тоже прикольно. Но я о том, что изменяя градиент тени, можно показать полупрозрачные модели и эффекты. Те же сферы Келя.
Ведь тень хрустальной вазы прозрачнее тени камня.
mishanka122 #314 - 1 год назад 0
да, я не ошибся, альфа канал тени ну, в смысле, зависимость тени от прозрачности объекта
darkowlom #315 - 1 год назад (отредактировано ) 2
Поддержка полупрозрачности объектов еще не реализована, но когда она будет реализована она автоматически будет генерировать прозрачную тень без ручной настройки, как это делает любой адекватный шейдер теней
DemonoiD #316 - 1 год назад 0
darkowlom, но возможность ручной настройки ведь будет?)
ENAleksey #317 - 1 год назад 0
DemonoiD, конечно, скорее всего, включение прозрачности тени будет происходить из .mdx файла модели (для каждого слоя материала отдельно).
mishanka122 #318 - 1 год назад 0
ENAleksey, а динамично в процессе игры или хотя бы в процессе создания карты. К примеру, идет такой юнит, а у него тени нет, и другие такие: "ДА ИТА Ж ПРИЗРАК ЙОПТА, БЕЙ ЕВО!"
ENAleksey #319 - 1 год назад (отредактировано ) 0
mishanka122, я думал, что вы имели ввиду тени для полупрозрачных объектов:
К примеру, идет такой юнит, а у него тени нет
Тени можно выключать для каждого отдельного объекта с помощью jass функции.
прикреплены файлы
mishanka122 #320 - 1 год назад 0
ENAleksey, я, и, собственно это и имели в виду, но демоноид задал вопрос настройки прозрачности теней, и я, собственно, задался таким же вопросом.
вот же блин, пока писал, забыл вопрос, который хотел задать
Ах,да. насчет шрифтов:
будет ли реализована загрузка шрифтов из импорта самой карты/кампании/архива?
ENAleksey #321 - 1 год назад 0
будет ли реализована загрузка шрифтов из импорта самой карты/кампании/архива?
Да, я уже делал это, шрифты загружались, но была одна проблема - стандартный шрифт варкрафта (FRIZQT__.TTF) крашил игру. Данная возможность появится в следующей версии, а пока можно использовать любые шрифты, установленные в системе.
ENAleksey #322 - 1 год назад (отредактировано ) 19

Work In Progress

  • Фейковое глобальное освещение (вода пока не учитывается):
  • Физически корректный спекуляр:
  • Улучшена техника SSAO, добавлено размытие:
  • Доработан Tone Mapping, добавлены настройки для цветокоррекции:
прикреплены файлы
DemonoiD #323 - 1 год назад 0
ENAleksey, только в последних 4х скринах что-то отличается. Ничего не понимаю.
RSQR #324 - 1 год назад 0
DemonoiD:
ENAleksey, только в последних 4х скринах что-то отличается. Ничего не понимаю.
Отличается. Обрати внимание на цвет нижней половины сфер.
ENAleksey #325 - 11 месяцев назад (отредактировано ) 7

Релиз экспериментальной версии 0.0.1a

Особенности:

  • Каскадные тени;
  • Попиксельное освещение;
  • Освещение, основанное на физических законах;
  • Ambient освещение заменено на Sky Light;
  • Burley diffuse модель освещения вместо Lambertian;
  • Все вычисления при работе с освещением и пост-эффектами проводятся в линейном пространстве;
  • ACES Tonemapping and Color Correction;
  • Image Based Lighting;
  • Поддержка карт нормалей;
  • Попиксельный туман: линейный, экспоненциальный, экспоненциальный квадратичный, Height Based;
  • Пост-эффекты: SSAO, SMAA, Film Grain, LUT Color Correction, Auto Exposure, Bloom, Lens Flares;
  • Заменена стандартная вода (пока без отражений и преломлений);
  • Свободная камера.

Исправления оригинальной игры:

  • Скайбокс больше не дёргается при перемещении камеры;
  • Снято ограничение на максимальный FPS:
  • Добавлена возможность отключать вертикальную синхронизацию;
  • Использование техники reversed depth buffer (пока отключено);
  • Возможность понизить значение ближней плоскости отсечения камеры без появления z-fighting артефактов;

Известные проблемы:

  • При рубке деревьев с включенными тенями игра вылетает;
  • Объекты с чёрным цветом материала становятся незатенёнными (пока не нашёл способ определять незатенённые объекты другим способом);
  • Игра может вылетать при включенных тенях, если в кадре находится более 2000 объектов;
  • Игра может начать подтормаживать при отключении теней, если при этом в кадре находится большое количество объектов.

Скачать

Скачать (папку можно разместить в любом месте на диске).
Если вы устанавливали предыдущие версии RenderEdge, то перед запуском обязательно удалите данный раздел в редакторе реестра: HKEY_CURRENT_USER\Software\RenderEdge

Требования:

Скриншоты

Physically Based Lighting

Image Based Lighting

Normal Mapping
прикреплены файлы
Кристофер #326 - 11 месяцев назад 0
ENAleksey, можно, плиз, инструкцию по установке? Фаталит при запуске (из реестра папку RenderEdge удалил).
4 комментария удалено
ENAleksey #331 - 11 месяцев назад (отредактировано ) 2
ENAleksey, можно, плиз, инструкцию по установке? Фаталит при запуске (из реестра папку RenderEdge удалил).
Исправил. Проблема была в том, что видеокарта не поддерживала INTZ формат текстур. Если видеокарта не поддерживает данный формат текстур, то будет использоваться RAWZ.
Кет #332 - 11 месяцев назад 0
Normal Mapping
Пластик какой-то. Это из-за текстур или из-за алгоритма?
ENAleksey #333 - 11 месяцев назад 0
Кет, из-за текстур и параметров roughness и metallic по умолчанию. В RenderEdge используется физически корректное освещение, поэтому можно сделать любой материал: хоть пластик, хоть дерево, хоть металл, главное - правильно настроить.
Можете просто скачать и посмотреть на освещение в действии: включать-выключать отражения, изменять параметры материалов.
Melissa #334 - 11 месяцев назад (отредактировано ) 0
Хмм, а можно как-то пофиксить портреты? У меня пропадают все синематик-рамки, а портреты юнитов либо вообще не отображаются либо отображаются частично?
ENAleksey #335 - 11 месяцев назад (отредактировано ) 3
Melissa:
Хмм, а можно как-то пофиксить портреты? У меня пропадают все синематик-рамки, а портреты юнитов либо вообще не отображаются либо отображаются частично?
Можно, конечно, когда-нибудь этим займусь. Данная проблема возникла из-за того, что я убрал чёрные полосы сверху и снизу, для её исправления нужно заставить портреты рисоваться после всех остальных объектов.

Кстати, только что реализовал улучшенный Bloom эффект из Unity 5.6:
Завтра выложу новую версию.
Изначально хотел взять реализацию из Unreal Engine 4, но Bloom из Unity, возможно, даже лучше.
прикреплены файлы
Melissa #336 - 11 месяцев назад (отредактировано ) 0
Вообще всё круто и классно, только если всё повключать и нагнуть камеру - моя карточка 4 фпс выдаёт ХД.
Кстати тени не везде вырисовываются почему-то. В какой-то говнокарте с ровным террайном за невидимой линией тень пропадает.
прикреплены файлы
ENAleksey #337 - 11 месяцев назад (отредактировано ) 17
Melissa, нужно просто покапаться в настройках теней, например увеличить дальность прорисовки и установить угол обзора на 70 градусов.

Обновление v0.0.2a

  • Новый пост-эффект Bloom;
  • Добавлены настройки Lens Dirt;
  • Добавлена возможно протестировать самосветящиеся материалы (см. вкладку Material);
  • Unshaded материалы выключены по умолчанию, их можно включить на вкладке Material;
  • Исправлены проблемы с конвертацией цвета стандартных источников света/тумана в линейное пространство;
  • Исправлена проблема, при которой нельзя было менять освещение в картах, где была вызваны функция SetDayNightModels("", "");
  • Добавлен счётчик памяти, используемой варкрафтом;
  • Debug Screens теперь работают.
прикреплены файлы
Melissa #338 - 11 месяцев назад 1
У ти бозе какая няфность <3.
DemonoiD #339 - 11 месяцев назад 0
ENAleksey, картам со светомузыкой ура! ура! ура!
ENAleksey #340 - 11 месяцев назад 12

Height Based Fog

На примере карты Refuge in Ruins
прикреплены файлы
Кристофер #341 - 11 месяцев назад 0
ENAleksey, этого не хватало для создания красивой бездонной пропасти, браво! :)
karaulov #342 - 11 месяцев назад 0
Фильмы Карты ужасов скоро начнут выходить с такими эффектами?)))
ENAleksey #343 - 11 месяцев назад (отредактировано ) 0
Кристофер, ещё планирую сделать туман пост-эффектом. Это позволит сделать плавный переход от земли к небу, так как на данный момент туман выглядит так:
Tiodor #344 - 11 месяцев назад 1
а сколько фпс всё это выдаёт и насколько это играбельно?)
ENAleksey #345 - 11 месяцев назад (отредактировано ) 15
Tiodor, вы можете скачать и проверить, я не могу судить по производительности только своего ноутбука.

Blue Noise Dithering


Ещё немного скриншотов из карты Refuge in Ruins:
прикреплены файлы
alexprey #346 - 11 месяцев назад 5
До появления отражения выглядело круто
PrincePhoenix #347 - 11 месяцев назад 2
Oh my eyes! Честно, давно мечтал, чтобы реализовали систему освещения в варкафте и боже мой это превосходно, чувак, опубликуй пожалуйста кошелек qiwi для возможности поддержать тебя!
ENAleksey #348 - 11 месяцев назад (отредактировано ) 0
PrincePhoenix, спасибо, конечно, но я не очень нуждаюсь в пожертвованиях. Публиковать кошелёк не буду, но если очень хочется поддержать, то лучше написать мне в ЛС.
AlakFrost #349 - 11 месяцев назад 0
Не знаю, может у меня что-то не так, но на gtx 1080 ti лагадрочь все равно :)
Narkranoth #350 - 11 месяцев назад 0
Xin, чего? Серьёзно?! Ё моё! Ужас какой-то... А видюха точно на 100% загружена?
Если на 1080 Ti так, то мне вообще ловить пока нечего в этой модификации...