Basic version | Widescreen Fix | Memory Hack The experimental version is no longer supported, use basic version.Introduction RenderEdge is a modification for Warcraft III, aimed first and foremost at improving the graphical components of the game by implementing a newer version of the graphics API. The RenderEdge project is divided into two versions: basic and experimental. All that you will be able to do in the experimental version will eventually be implemented in the main. Features (+) Cascaded Shadow Mapping; (+) Physically Based Shading; (+) Gamma Correction; (+) ACES Tonemapping and Color Grading; (+) Screen Space Reflections; (+) Temporal Anti-Aliasing; (+) Support of custom shaders for post-effects and models; (-) Using models from .obj, .3ds, .dae and .blend files; (-) MDX/MDL models format modification: adding support of normal maps and DDS/BLP2 texture format (-) War3 Model Editor modification; (-) Adding new features to the World Editor; Bugs: Some post-effects work incorrectly with a limited size of viewport. Installation Requirements: WarCraft III patch 1.26a; Windows 7 or above; Microsoft Visual C++ Redistributable for Visual Studio 2017. Unpack archive and launch RenderEdge.exe. Press F7 to show settings GUI. You can also edit settings via RenderEdge.ini (placed in RenderEdge_exp.mpq archive). You can enable the option to load settings file, 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_exp.mpq archive. You can add new tab in your JNGP to launch RenderEdge easier by editing wehack.lua: wehack.lua Code (Text): -- # 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_exp.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: Code (Text): @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 Screenshots Old version Screenshots Videos Changelog Code (Text): v0.1.3a * Added the ability to disable/enable rendering of different types of objects; * Added support of Indicators; * Added support of Occlusion Masks; * Added support of Lightnings; * Added support of Floating Text; * Added the ability to select the intensity units of point light sources; * Added Fog Of War settings; * Added the ability to disable standard shadows of buildings; * INIReader: added the ability to write comment in the same line with value of string type; * INIReader: added option to hide game UI; * Deleted Free Camera movement limits; * Tonemapper: Blue Correction, Expand Gamut; * Changed Bloom intensity to more correct; * Added Calibration Constant parameter for Auto Exposure; * Added new Exponential Height Fog; * Leaving the camera position unchanged after disabling Free Camera mode; * Improved Screen Space Reflections; * Default Projection Matrix renamed to Constant Vertical FoV; * Optimized Auto Exposure; * Added option to pause the game; * Improved input blocking in Free Camera mode; * Added the ability to take a screenshot; * Changed shading model (may be changed back in the next version); * Fixed a bug where one of the terrain chunks didn't cast shadows; * Fixed incorrect color and intensity of point and directional light sources; * Fixed skybox shading; * Fixed incorrect interception of camera parameters with non-standard near clipping plane; * Fixed incorrect work of contact shadows with non-standard camera clipping planes; * Fixed the effect of Unfogged Materials parameter; * Fixed post-effects rendering in main menu; * Fixed the influence of UI and camera direction on Contact Shadows; * Fixed the appearance of black borders when disabling User Interface parameter, if they were initially hidden; * Fixed work of Screen Space Reflections with Temporal AA; * Fixed graphical artifacts when turning on and off HDR; * Fixed projection matrix; * Fixed incorrect SSAO blurring with downsampling; * Fixed crashes while switching V-Sync mode; * Fixed reloading of shaders and settings while loading protected maps; * Fixed shadows rendering in main menu; * Fixed references leaking; * Fixed crashes then changing resolution; * Fixed crashes then playing movies; * Fixed resource loading from RenderEdge_exp.mpq; * Fixed incorrect texture paths in RenderEdge.ini. v0.1.2a * Added the ability to select the temperature of the directional light source; * Added processing of standard shadow of units on the water; * Added the ability to select the intensity units of point light sources; * Added the ability to use an improved projection matrix; * Added the ability to load textures and shaders from the folder with RenderEdge (AllowLocalFiles in the registry); * Added the ability to load shaders from the map; * Added the option to fix the jitter of the skybox when moving the camera; * Reading settings from RenderEdge.ini (searching file in the map, in the folder with RenderEdge (with AllowLocalFiles enabled), in .mpq archives); * Now "Disable Unit Shadows" option disables the shadows of units both on the ground and on the water; * Reduced consumption of RAM when using shadows; * Removed limit of objects that can cast shadows at the same time; * Improved shadows quality; * Improved settings interface; * Improved free camera mode: true first person camera, independence of landscape height; * Soft shadows are turned off (you can turn them on by editing ShadowCommon.fxh); * Now shadows are not rendered if the game is paused; * Added the version of RenderEdge in the bottom right corner of main menu; * Optimization of Debug Screen; * Fixed a bug: the base of the building had the lighting of units instead of the terrain, and cast the shadows; * Fixed an incorrect intensity of point light sources; * The game no longer crashes when using shadows; * Fixed periodic disappearance of shadows when moving and rotating the camera; * The shadows of the landscape work again. v0.1.1a * Added Contact Shadows (Screen Space Ray-Traced Shadows); * Added support of weather effects; * Added a fog for skybox; * Improved Color Grading: added a separate setting for Shadows, Midtones and Highlights; * Added the ability to manually set the gamma of the monitor: Output Device - Explicit gamma mapping (LDR); * Added the ability to choose the size of shadow map texture; * Added advanced settings for Ambient Occlusion; * Added the ability to hide the interface, turn off the Fog of War and standard units shadows in the Default Renderer mode; * Improved Debug Screen mode: full screen display; * Optimization of Auto Exposure; * Optimization of Rendering Pipeline; * Added descriptions of exe and dll files; * Fixed a bug: building models are not processed when choosing a construction site; * Fixed incorrect work of Auto Exposure with limited size of viewport; * Fixed incorrect work of SSR with Temporal AA enabled; * Fixed the incorrect work of post-effects for non-standard settings of the clipping planes of the camera; * Fixed the influence of Free Camera mode on portrait display; * Fixed incorrect blurring of SSAO with downsampling enabled; * Fixed bugs in JassAPI (conversion real <=> float); * Fixed camera shift when the free camera mode is turned on; * Fixed height of the landscape influence on the height of the free camera. v0.1.0a * Added support of animated textures; * Added support of semi-transparent models; * Added support of Unshaded materials; * Added support of Vertex Color; * Added support of skybox lighting; * Added support of textures, the size of which is not a pow of 2; * Improved hiding interface; * Improved Sky Light: added Blend Factor parameter; * Improved Debug Point Light: added the ability to manually set the coordinates; * Improved Image Based Lighting; * Using pixel reflections; * Added the Culling Mode option for shadows; * Added the ability to select the format and color space of the monitor; * Added Temporal Anti-Aliasing; * Added Screen Space Reflections; * Added Auto Exposure (UE4); * Improved Chromatic Aberration; * Updated SSAO: replaced by Scalable Ambient Obscurance; * Improved Bloom (increased maximum radius, added the ability to stretch horizontally or vertically); * Preserving the proportions of Lens Dirt textures at any aspect ratio of the screen; * Anti-aliasing is now applied before other post-effects; * Optimization of Color Grading (LUT texture baking); * Displaying post-effects only inside the viewport; * Removed the ability to use Irradiance texture as a source of ambient lighting; * Removed improved water; * Loading and creating of textures and effects only as needed; * Updated d3d8 to d3d9 converter; * Fixed a bug when the same directional light source was used for units and terrain; * Fixed crashes when cutting trees with enabled shadows; * Fixed crashes when minimizing the game with enabled shadows; * Fixed crashes when the free camera mode was turned on; * Fixed crashes when setting a small radius in the Bloom effect; * Fix minimizing of the game when switching vertical synchronization; * Fixed stretching the screen when the interface and shadows are turned on; * Fixed memory leak when interface and post effects turned on; * Fixed incorrect display of SSAO when the Free Camera mode is on; * Fixed the projection function of SSAO and SSR textures on the screen; * Fixed incorrect gamma correction of skybox when post-processing is enabled; * Fixed incorrect work of Dithering; * Fixed incorrect color of standard point light sources; * Prohibition of disabling the interface and enabling the free camera mode in the main game menu and during map loading; * Dynamic cleaning of unused memory, occupied by shadows; * Fixed incorrect value of the Height and Density parameters of fog; * Fixed loading of textures from .mpq archives; * Fixed incorrect brightness of point light sources. v0.0.2a * New Bloom effect; * Added settings for Lens Dirt; * Added option to test emissive materials (see 'Material' tab); * Unshaded materials are turned off by default, you can turn them on in the 'Material' tab; * Fixed problems with color conversion of standard lights and fog to linear space; * Fixed an issue where it was not possible to change the lighting in the maps where the SetDayNightModels("", "") function was called; * Added a counter of memory used by the Warcraft; * Debug Screens now work. v0.0.1a * First stable build. References RenderEdge on Nexus Mods; RenderEdge on XGM; YouTube channel; Old discussion on Hive.