A water shader mod for No Man’s Sky.
Status
Mod version 3.53. Compatible with No Man’s Sky version 3.53.
Description
A water shader mod for No Man’s Sky, featuring many new visual enhancements:
Wave Generation:
* Improved height, detail, and motion
* Created new custom texture volumes
* Added depth-based geometry changes
Specular Highlights:
* Made properly follow sun position, and better match sun size
* Improved coloring, distance/angle diffusion, and atmospheric transition
* Made reflected terrain diminish brightness
Reflections:
* Made actually based on wave geometry
* Improved fresnel settings, and underwater coloring
* Added blur effect
* Improved reflected terrain quality
Water Color:
* Fixed waterline level rendering
* Improved texture and shading detail
* Added depth-based shading at higher altitudes
* Added backlight scattering effect
Foam:
* Improved texture appearance, blending, and visibility
* Moved onto waves, made shift & ripple with wave motion
* Made thickness & transparency change based on wave motion
* Made lit by environment lighting
Other:
* Fixed/reduced multiple view-based distortions and rendering issues
Installation
Copy ArghWater_353.pak from zip into “No Man’s Sky\GAMEDATA\PCBANKS\MODS\” (delete older versions of mod if present).
Rename or remove DISABLEMODS.TXT in “No Man’s Sky\GAMEDATA\PCBANKS\” if present.
Files Modified
SHADERS\CODE\BIN\PC\LIGHT_FRAG_SUNLIGHT_*.SPV
SHADERS\CODE\BIN\PC\TERRAIN_VERT_REFLECT_WATER_*.SPV
SHADERS\CODE\BIN\PC\WATER_FRAG_FULLSCREEN_*.SPV
SHADERS\CODE\BIN\PC\WATER_FRAG_FULLSCREEN_BELO_*.SPV
TEXTURES\SHADER\NOISEINVERT.DDS
History
3.53:
Initial release.
Currently overrides several GCWATERGLOBALS.GLOBAL settings, considering alternate options for future.
Development Notes
So who says NMS Vulkan shader mods are impossible? 😉
I originally started this as a GLSL shader mod way back in Next/Visions. Initially inspired by Lo2k’s True Water shader mod, it quickly expanded with improvements to specular highlights, reflections, & foam rendering. Unfortunately, before I was able to release my mod, Hello Games made the switch from OpenGL to the Vulkan API for the upcoming Beyond update. This move essentially killed all shader mods dead in their tracks. I put this mod aside and moved onto other things.
About a year ago I got the itch to work on it again, if only as a learning experience for myself. Working under the older NMS version 1.77, I started implementing more advanced features like proper wave-geometry-based reflections & motion-based foam dynamics. I was very happy with the results, but disappointed being unable to share them.
At the same time, others made important advancements with Vulkan shaders: successfully decompiling, making simple changes, & recompiling them back into the game. Many obstacles remain though, leaving most shader mods still out-of-reach. The water shader turns out to be a fortunate case: it’s fairly isolated, has few used variants, and had few changes since 1.77. This made it possible to decipher the necessary changes from the decompiled Vulkan code, use those to update the old GLSL version, & rebuild it to run under current NMS versions! The sunlight shaders were a bit trickier to reverse-engineer, but my tweaks to those were more limited and I was able to successfully update them as well.
Who knows how long this mod will be relevant, particularly with Hello Games’ anniversary update just around the corner. Nevertheless, I’m excited to finally be able to share my efforts with the NMS community. Hope you enjoy!
Credits:
Argh