Актуальная версия v0.1.3a
Экспериментальная версия больше не поддерживается, используйте основную.

Особенности

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

Скриншоты

Старая версия
Скриншоты





Видео

Установка

Требования:

Распакуйте архив и запустите RenderEdge.exe. Нажмите F7, чтобы показать меню настроек. Изменить настройки также можно в файле RenderEdge.ini (расположен в архиве RenderEdge_exp.mpq).
В редакторе реестра можно включить опцию, позволяющую загружать файл настроек, шейдеры и текстуры из папки с 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

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

Если вы хотите отредактировать шейдеры, то скачайте архив, распакуйте шейдеры, скомпилируйте и поместите их в папку Shaders. Эту папку вы можете импортировать в карту, разместить в папке RenderEdge или в архиве RenderEdge_exp.mpq.
Скачать шейдеры и fxc.exe.

Компиляция из Visual Studio

Добавьте шейдеры в проект, в его свойствах настройте HLSL Compiler следующим образом:






Компиляция с помощью fxc.exe

@echo off
fxc.exe /T fx_2_0 /Fo Standard.cso Shaders\Standard.fx /nologo
fxc.exe /T fx_2_0 /Fo Shadows.cso Shaders\Shadows.fx /nologo
fxc.exe /T fx_2_0 /Fo PostProcess.cso Shaders\PostProcess.fx /nologo
fxc.exe /T fx_2_0 /Fo Skybox.cso Shaders\Skybox.fx /nologo
pause

Изменения

Следите за разработкой RenderEdge на Trello.
v0.1.3a
  * Добавлена возможность включать/отключать рендеринг различных типов объектов;
  * Добавлена поддержка Индикаторов;
  * Добавлена поддержка Occlusion Mask;
  * Добавлена поддержка Молний;
  * Добавлена поддержка Плавающего текста;
  * Добавлена возможность выбора единиц измерения интенсивности точечных источников света;
  * Добавлены настройки Тумана войны;
  * Добавлена возможность отключать стандартные тени зданий;
  * INIReader: добавлена возможность записи комментариев в одной строке со значением типа string;
  * INIReader: добавлена возможность скрыть игровой интерфейс;
  * Удалены пределы свободной камеры движения;
  * Tonemapper: Blue Correction, Expand Gamut;
  * Изменена интенсивность Bloom на более корректную;
  * Добавлен параметр Calibration Constant для Auto Exposure;
  * Добавлен новый Height Based туман;
  * Сохранение положения камеры после отключения режима Free Camera;
  * Улучшен Screen Space Reflections;
  * Параметр Default Projection Matrix переименован в Constant Vertical FoV;
  * Оптимизирован Auto Exposure;
  * Добавлена возможность приостановить игру (приводит к дисконекту при включении в игре по сети);
  * Улучшена блокировка ввода в режиме Free Camera;
  * Добавлена возможность сделать скриншот;
  * Изменена модель освещения при включенном PBS (может быть изменена обратно в следующей версии);
  * Исправлена ошибка, при которой один из чанков ландшафта не отбрасывал тени;
  * Исправлены некорректный цвет и интенсивность точечных и направленных источников света;
  * Исправлено освещение скайбокса;
  * Исправлен некорректный перехват параметров камеры с нестандартной ближней плоскостью отсечения;
  * Исправлена некорректная работа Contact Shadows с нестандартными плоскостями отсечения камеры;
  * Исправлен эффект параметра Unshaded Materials;
  * Исправлен рендеринг пост-эффектов в главном меню;
  * Исправлено влияние пользовательского интерфейса и направления камеры на Contact Shadows;
  * Исправлено появление черных рамок при отключении параметра User Interface, если они изначально были скрыты;
  * Исправлена работа Screen Space Reflections с включенным Temporal AA;
  * Исправлены графические артефакты при включении и выключении HDR;
  * Исправлена матрица проекции;
  * Исправлено некорректное размытие SSAO с включенным параметром Downsampling
  * Исправлены вылеты при переключении режима V-Sync;
  * Исправлена перезагрузка шейдеров и настроек при загрузке защищенных карт;
  * Исправлен рендеринг теней в главном меню;
  * Исправлена утечка памяти;
  * Исправлены вылеты при смене разрешения экрана;
  * Исправлены вылеты при воспроизведении роликов;
  * Исправлена загрузка ресурсов из RenderEdge_exp.mpq;
  * Исправлены неправильные пути текстур в RenderEdge.ini.

v0.1.2a
  * Добавлена возможность выбора температуры направленного источника света;
  * Добавлена обработка стандартных теней юнитов на воде;
  * Добавлена возможность выбрать единицу измерения интенсивности точечных источников света;
  * Добавлена возможность использовать улучшенную матрицу проекции;
  * Добавлена возможность загрузки текстур и шейдеров из папки с 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
  * Первая стабильная сборка.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
13
7 лет назад
Отредактирован ENAleksey
0
PrincePhoenix, спасибо, конечно, но я не очень нуждаюсь в пожертвованиях. Публиковать кошелёк не буду, но если очень хочется поддержать, то лучше написать мне в ЛС.
0
15
7 лет назад
0
Не знаю, может у меня что-то не так, но на gtx 1080 ti лагадрочь все равно :)
0
17
7 лет назад
0
Xin, чего? Серьёзно?! Ё моё! Ужас какой-то... А видюха точно на 100% загружена?
Если на 1080 Ti так, то мне вообще ловить пока нечего в этой модификации...
0
20
7 лет назад
0
take my money
0
22
7 лет назад
0
Не ну а если серьезно? Что там по производительности?
0
13
7 лет назад
0
Inetl HD 5600 лагает при движении курсора и камеры. А при запуске на дискретной видеокарте вообще не появляется окошко управления.
0
15
7 лет назад
Отредактирован AlakFrost
0
Narkranoth:
Xin, чего? Серьёзно?! Ё моё! Ужас какой-то... А видюха точно на 100% загружена?
Если на 1080 Ti так, то мне вообще ловить пока нечего в этой модификации...
Да я слежу за модификацией уже давно, пока фпс, даже после того как ограничения были сняты, дико просядает.
Загрузка конечно у видихи не фул, я думаю сам вар ещё слишком старенький для такого)
0
13
7 лет назад
Отредактирован ENAleksey
0
EfReeZe, это AntTweakBar так работает с дискретной видеокартой. У меня были такие же лаги при движении курсора, когда я случайно сбросил настройки BIOS, тем самым включив дискретную видеокарту Intel HD Graphics 4000. От этой проблемы я избавлюсь только после того, как перенесу весь функционал экспериментальной версии RenderEdge в основную, то есть откажусь от пользовательского интерфейса AntTweakBar. А пока можно просто нажать на F9, чтобы отключить AntTweakBar.

Xin, Narkranoth, пока тени жрут очень много памяти, при этом игра может вылететь при превышения определённого лимита (у меня это 2000 Мб). На данный момент для каждого объекта на сцене создаётся свои буферы вершин и индексов, они и занимают всё это место в памяти. Я так делаю из-за того, что у меня нет прямого доступа к информации об объектах на сцене, но я пытаю оптимизировать процесс перехвата данной информации. По-хорошему нужно создать только один буфер вершин и один буфер индексов, чтобы хранить в них всех юнитов, но пока у меня ничего не получается.
Также на производительность влияет и то, что я рендерю каждый объект по отдельности, то есть делаю что-то вроде этого:
for each (MESH mesh in allMeshes)
{
	g_pStandardFX->Begin();
	mesh->Render();
	g_pStandardFX->End();
}
А надо так:
g_pStandardFX->Begin();
for each (MESH mesh in allMeshes)
{
	mesh->Render();
}
g_pStandardFX->End();
И всё это из-за той же самой проблемы: "у меня нет прямого доступа к информации об объектах на сцене".
В общем, мне очень нужна помощь людей, которые разбираются в reverse engineering'е динамических библиотек. Всё, что мне нужно на данный момент - найти в game.dll структуру игровых объектов, это решит все проблемы, которые имеются на данный момент.

Xin, на какой карте происходят сильные лаги, сколько объектов находится в кадре? У меня мобильная видеокарта NVS 5200M, но на карте, которую я приложил к экспериментальной версии, выдаёт 100 FPS с включенными тенями.
0
15
7 лет назад
Отредактирован AlakFrost
0
На любой карте, 30 фпс примерно выдает. Даже если на карте пару юнитов и немного декора.
Когда наклоняешь камеру под углом, лаги конечно сильнее становятся, но это вполне обосновано из-за большего объема сцены в кадре.
0
13
7 лет назад
0
Xin, что включено? Тени, пост-эффекты, IBL, PBS? Сколько объектов в кадре, сколько памяти используется?
Попробуй ещё выключить Туман Войны и стандартное освещение на вкладках Directional Light и Sky Light (Default Color, Default Direction).
Загруженные файлы
0
15
7 лет назад
Отредактирован AlakFrost
0
Только что вот запустил с базовыми настройками что идут по умолчанию, 30 фпс опять. При запуске падает с 50 где-то постепенно до 30. На тестовой карте такая же ситуация.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.