About this mod
RenderEdge is a modification for Warcraft III, aimed primarily at improving the graphic component of the game by introducing a newer version of the graphical API.
- Requirements
- Permissions and credits
- Mirrors
- Changelogs
- Donations
Features
GUI Rendering System:
- (+) Base system;
- (+) Jass handling;
- (+) Multi-line text with formatting;
- (+) TTF fonts support;
Post-processing:
- (+) HDR Rendering;
- (+) ACES Tonemapping and Color Grading;
- (+) Screen Space Reflections;
- (+) Contact Shadows;
- (+) Temporal Anti-Aliasing;
- (+) Support of custom shaders;
- (-) Jass handling;
Advanced Lighting:
- (+) Cascaded Shadow Mapping;
- (+) Physically Based Shading;
- (+) Image Based Lighting;
- (+) Gamma Correction;
- (+) Support of custom shaders;
- (-) Jass handling;
Misc:
- (+) Direct3D8 to Direct3D9;
- (+) Widescreen support;
- (+) Lower delay for unit orders in singleplayer;
- (+) Launching more than one instance of war3.exe;
- (+) Turning on/off V-Sync.
Requirements:
- WarCraft III patch 1.26a;
- Windows 7 or above;
- Microsoft Visual C++ Redistributable for Visual Studio 2017.
Unpack archive and launch RenderEdge.exe. Select the path to war3.exe in the window that appears when RenderEdge is first launched.
Press F7 to show settings GUI. You can also edit settings via RenderEdge.ini.
You can enable the option to load shaders and textures from the RenderEdge folder by editing this value in the Registry Editor: CURRENT_USER\Software\RenderEdge\AllowLocalFiles. Resource search sequence: the loaded map, the RenderEdge folder, the RenderEdge.mpq archive.
You can add new tab in your JNGP to launch RenderEdge easier by editing 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 editing
If you want to edit shaders, download archive, unpack, compile and place them in Shaders folder. Then you can place it in RenderEdge folder, import in your map or in RenderEdge.mpq archive.
Compiling in Visual Studio:
Add the shaders to the project and configure the HLSL Compiler in the project properties as follows:

Compiling by 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
Samples
Sample map is written in vJass and contains demonstration of using all RenderEdge features. The map is updated every time a new version of RenderEdge is released.

Map features:
- GUI system (Widgets: Label, Button, Dragbox, Checkbox, Horizontal Slider);
- Standard interface editing;
- Camera control system.
References