Mirroring of the latest Shader Patch release (v1.4.0) from GitHub. See description for requirements and release notes.
Requirements
- Windows 10, at least version 1909
- Direct3D Feature Level 11_0 or higher capable GPU
Release Notes
Additions
- Added a new installer, uninstaller and configurator application. The application will detect what to run as based on if it thinks it's in the game's folder or not. When ran from the game's folder it functions as a configurator that allows you to edit 'shader patch.yml' without the risk of typos. When ran from outside the game's folder it functions as an installer, attempt to provide a seamless way to quickly copy over Shader Patch to the game's folder. As an added bonus the new installer will attempt to preserve the values of settings in an existing 'shader patch.yml' while copying in any new available values. The application is initially named 'Shader Patch Installer.exe' and is renamed to 'Shader Patch Settings.exe' during install. (The name does not affect functionality however and if you prefer to manual install you can still run it as 'Shader Patch Installer.exe' and it'll work as a configurator when ran from the game's folder.)
- Added particle_ext rendertype for custom materials.
- Integrated FidelityFX CAS (Contrast Adaptive Sharpening) and exposed it to modders via the Effects System. It is disabled by default.
- Added 'Floating-point Render Targets' Effects option. Useful for preserving the colour of bright emissive surfaces for Bloom without having to enable HDR rendering. (Which brings linear rendering along with it, which may not be desirable for maps not using custom materials.)
- Added 'Enable Scene Blur' option to 'shader patch.yml'. Enables globally disabling the game's stock scene blur effect (used by some maps), for performance or personal preference.
- Added 'Windowed Interface' option to 'shader patch.yml'. Enables the classic 1.3 interface handling behavior.
- Added 'Game Perceived Resolution Override' option to 'shader patch.yml'. Enables overriding the resolution the game thinks it is rendering at.
- Added a basic form of DPI awareness so that the game no longer stops rendering at native resolution on high DPIs when Shader Patch is enabled.
- Added 'Display Scaling Aware' option to 'shader patch.yml'. Enables or disable marking the as DPI aware, disabled mirrors 1.3 behavior.
- Added 'Display Scaling' option to 'shader patch.yml'. Enables or disables scaling the game's perceived resolution based on DPI, has the effect of scaling the UI and HUD without changing the resolution the game is actually being rendered at.
- Added scalable fonts (and accompanying shaders to use them) for text rendering. Their use can be toggled on and off using 'Scalable Fonts' in 'shader patch.yml', they default to on.
- Added MultiplyEmissiveByVertexColor to the normal_ext material type. (#128)
Changes
- Mapped 'normal_ext' tessellation rendertypes to their regular counterparts.
- Reworked some aspects of resolution, most specifically with how 'Treat 800x600 As Interface' works. By default it'll now cause the game to be fullscreen but with the game thinking it is renderering at 800x600 when it is really rendering at native resolution.
- Significantly reduced the number of permutations generated for most pixel shaders.
- Gave 'normal_ext' Parallax Occlusion Mapping it's own shader permutations. Boosting the performance of materials that don't make use of it.
- Changed the last pseudo display mode presented to the game be the primary monitor's resolution instead of 1024x768. Changes no functionality but hopefully makes it clear to users that get stuck with game profiles with resolutions set to 800x600 that they should select the other option.
- Made it so MSAA would be automatically downgraded to CMAA2 when OIT is enabled - either by the user or a map.
- Changed HLSL shader compilation to be handled at runtime and then cached for subsequent runs. A cache for the shaders needed for core functionality comes included with the download. The key visible change from this will be on maps with custom materials or when first using the effects system. In which case you can expect to have slightly longer loading screens the first time your map is run as Shader Patch compiles the shaders needed for the custom materials in the map. This change as made to ease development and to enable providing more custom material features in the future.
- Changed parts of material creation logic to be driven by Lua scripts. Enabling (technically re-enabling) the development material types without
touching the C++ code.
- Changed normal_ext materials Emissive Map texcoords selection when Parallax Occlusion Mapping is enabled. Now when 'EmissiveTextureScale' is '1.0' the emissive map will use the same texture coords as the diffuse and normal maps.
Fixes
- Fixed an issue with interface colours not being sRGB corrected on the loading screen when loading a map with HDR rendering.
- Fixed an OIT shader for 'normal_ext' being missing.
- Fixed random crashing for some materials. (#119)
- Fixed OIT not working for most materials.
- Fixed 'material_munge' failing when the deprecated 'Flags' section was missing from material descriptions.
- Fixed normal_ext materials with specular lighting enabled not receiving light from spotlights.
This comment is currently awaiting admin approval, join now to view.
Hi,
Is there a way to adjust the game resolution with this mod installed? In my options I've got 800x600 which looks dreadful or my laptop's native 3840x2400. The 2400p is fine on pretty much all maps except ones that have particles flying through the air (snow, rain, fog, etc...), then my framerates start to drop to around 25-30. This game is actually making my 2060 struggle at some points lol. I'd like to be able to drop down to 1600p or 1200p.
Thanks.