Актуальная версия 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
30
0
Чтоб перенастроить интерфейс - хочешь, не хочешь придётся работать с моделями и редактировать текстуры.
волков бояться - в лес не ходить...
да даже если кривенько, сама возможность этого стало бы оч. крутой фишкой...
хотя, это скорее всего, уже за пределами простой отрисовки новых элементов...
0
21
8 лет назад
Отредактирован Raised
0
Андреич, да дело не в "боятся", скорее в том что что один, что другой - оба способа требуют примерно одинакового количества усилий.

Кроме того "редактировать стандартный интерфейс" предполагает - как минимум настройку/подгонку положения каждого блока. Имею ввиду что это требует того же инструментария и времени, что и отрисовка своего.
7
13
8 лет назад
Отредактирован ENAleksey
7
Андреич, GF RaiseD, намного легче сделать интерфейс с нуля, и такая возможность уже есть. Например, можно полностью скрыть стандартный интерфейс и/или выключить его через EnableInterface(...) и рисовать новый, при этом назначая кнопкам действия, которые были назначены на стандартные. Таким способом можно запросто воссоздать стандартную область с предметами, а также с приказами и способностями, благо существуют jass функции, которые позволяют выполнять те же действия, что и кнопки стандартного GUI.
4
21
8 лет назад
Отредактирован Raised
4
Интересно, мог ли бы ты добавить несколько функций для игровой камеры.
Опишу подробней, на всякий случай:
Не хватает функций для контроля Z-координаты игровой камеры, нативки для вычисления Z-координаты ландшафта.
Возможно, вы знаете что камера движется по определённой плоскости, не совпадающей с плоскостью ландшафта. Опыты показывают что эта плоскость напоминает сглаженный ландшафт под ней. Сделано это для того чтоб камера не прыгала по каждому малейшему холмику.
Итого Z-координата камеры в произвольной точке - это её высота не над рельефом, а над некой плоскостью камеры. На ровных участках плоскость ландшафта и плоскость камеры совпадают, но когда камера находится у склона, эти плоскости расходятся (т.к. плоскость камеры - сглаженный меш плоскости ланда) и это вызывает множество неприятных багов когда камера "улетает" вверх, находясь у склона.
Искомая функция представляет собой нечто вроде этого:
native GetCameraPlaneZ takes real X, real, Y returns real //Это должно возвращать Z-координату проекции точки на плоскость камеры.
Есть аналогичная маска, по которой передвигаются летающие юниты.
Для "Плоскости юнитов" сойдёт нечто вроде этого:
native GetUnitPlaneZ takes real X, real, Y returns real //Это должно возвращать Z-координату проекции точки на плоскость юнитов.
Это бы развязало руки многим мододелам. Сейчас приходится использовать огромную систему просто чтобы пофиксить положение камеры.
2
24
8 лет назад
2
GF RaiseD, только помни, работать будет только у тех у кого есть мод
0
29
8 лет назад
0
GF RaiseD, так вот оно в чем дело, а я то голову до сих пор ломал, какого так происходит)
0
21
8 лет назад
0
Если этот мод доделать, он станет "must have", как JNGP. По крайней мере для тех, кто собирается делать что-либо годное.
0
22
8 лет назад
0
GF RaiseD, извини, отвлекся и поставил дизлайк :(
А так, мод маст хэв! Если он будет более менее доделан, то я буду насильно заставлять знакомых качать мод.
0
30
0
Например, можно полностью скрыть стандартный интерфейс и/или выключить его через EnableInterface(...) и рисовать новый, при этом назначая кнопкам действия, которые были назначены на стандартные. Таким способом можно запросто воссоздать стандартную область с предметами, а также с приказами и способностями, благо существуют jass функции, которые позволяют выполнять те же действия, что и кнопки стандартного GUI.
это замечательно, но я так понимаю, если отключить стандартный интерфейс, то самому восстанавливать мини-карту и рамку портрета юнитов бует немного геморно..)
6
13
8 лет назад
Отредактирован ENAleksey
6
Андреич, да не совсем, я сейчас как раз пробую это сделать. Например, так добавляю новую кнопку, при нажатии на которую, происходит то же самое, что и при нажатии на стандартную кнопку атаки.
void fakeAttack()
{
    ForceKey("A");
}

void InitInterface()
{
    trigger trig = CreateTrigger();
    TriggerAddAction(trig, function fakeAttack);

    GUICreateInstance(0, 800, 400, 64, 64);
    GUISetTexture(0, "Textures\\Attack.blp");
    GUISetCallback(0, trig, MB_Left, Key_Release);
}
А миникарту и портрет юнитов можно оставить стандартными, но с возможностью их переместить, изменить размер, либо полностью скрыть.

Скрыть стандартный интерфейс можно средствами d3d, так как, если сделать это функциям варкрафта, то попадет возможность использовать ForceKey(...). Осталось реализовать возможность отключать передачу информации о нажатиях кнопок мыши в варкрафт.
3
30
3
А миникарту и портрет юнитов можно оставить стандартными, но с возможностью их переместить, изменить размер, либо полностью скрыть.
это именно то, что я хотел услышать..)
ты - чудо..)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.