OBGE Liquid Water
http://www.tesnexus.com/downloads/file.php?id=37825
This Water Package Is An Extension of the OBGE Project. If you are unaware of what that is, or you do not have it installed and working, look at either the current OBGEv2 Forum Thread on the official Bethesda Forums, or Navigate to the OBGEv2 TESNexus Page. Otherwise do not bother attempting to install this Water Package.
Note: Make sure you read the included ReadMe thoroughly, as there is an unconventional installation method.
Description
A Water Replacement
The story of this project begins with the precursor to the OBGEv2 project, the long-gone OVEP project. One of OVEP's main goals was to eventually replace Oblivion's water shader. Even with mods and INI tweaks, Oblivion's water is blocky, unnatural, and unaesthetic. Unfortunately, OVEP ended up dying and the water didn't get replaced. A long while later, a series of rapid advancements in what the OBGE team realized they could do with just full-screen shaders finally led to this replacement for Oblivion's water shader, albeit with a few bugs.
The purpose of OBGE Liquid Water is to first and foremost replace Oblivion's water shader. About two months were spent on the creation of the water shader itself, while a fraction of that was spent on all other aspects of this package. The results of such a long development time for a shader do show however, with the final water replacement featuring the following:
- Reflections and Refractions
- Realistic Speculars
- Water Surface Refraction
- High Quality Normal Maps
- Physically Based Light Scattering System
- Underwater Volume Fogging
- Smooth Shoreline Transitions
- Water Caustics
- Accounts For Weather
- Looks Natural In All Conditions
- Works In Exteriors And Interiors
A Fix for SSAO Fog Issues
In addition to presenting a long hoped for water replacement, this water package also provides a fix for one of the most irritating issues with using OBGE, the interaction between fog and SSAO. The SSAO provided in this package, when enabled through the included esp's INI, no longer has that issue. In caves, during thunderstorms, and underwater, SSAO will now take fog into account and will no longer be overly defined, sticking out like a sore thumb.
An Alternative Shader Loader
The final aspect unique to OBGE: Liquid Water is a new method of loading OBGEv2 shaders that are compatible with the new water. This is because the package is incompatible with both the shaderlist and support plugin methods of OBGEv2, as when loading shaders alongside the new water shader, they cause major, unfixable load order issues. In terms of ease of use versus user control, this new method is somewhere in between the shaderlist and support plugin methods. The user doesn't have to worry about load order and accidently loading incompatible shaders like they do with the shaderlist method. However, unlike the support plugin this new method doesn't allow shaders to be loaded in-game, and to change shader variables you must change the variables in the shader files themselves rather than being able to change the variables on the fly.
Installation
Requirements
Before even attempting to install this mod, make sure that both the OBGEv2 Core and OBGEv2 shader packages are installed and functional. Additionally, you must have at least OBSEv20 installed, or the water package might not work correctly. These can be all found in the following links:
http://www.thenexusforums.com/index.php?/topic/303103-obse-v20-httpobsesilverlockorg/
http://www.tesnexus.com/downloads/file.php?id=30054
Installation Process
Once you have installed the prerequisites, download from the TES Nexus page OBGE Liquid Water, then follow all of the following steps to install correctly:
- If you are using either the shaderlist method to load shaders from OBGEv2, make sure you delete your shaderlist.txt.
- If you are running the support plugin from the OBGEv2 shaders package, create a clean save with no shaders enabled then disable the support plugin.
- Extract the contents of OBGE - Liquid Water to your Oblivion\Data directory. Answer yes to any merge or overwrite prompts.
- Open your Oblivion INI
- Replace the line bUseWaterLOD=1 with bUseWaterLOD=0
- Replace the line fSurfaceTileSize=2048.0000 with fSurfaceTileSize=0.0000
- Optionally, while in the INI, http://www.gamespot.com/features/6148788/p-2.html. Note that these will decrease performance, although less so for more powerful computers.
- In the Oblivion in-game settings, disable both HDR and Bloom, unless you don't mind water color not always blending into the environment correctly.
- In the Oblivion in-game settings, disable water ripples.
- Enable OBGE - Liquid Water.esp in your mod load order, after any weather mods you are using, and before any cell-editing mods.
How To Change The Reflection Resolution
When you first run the game with OBGE: Liquid Water installed, you'll most likely find yourself seeing vanilla Oblivion's low resolution reflections. Luckily, you can change the reflection resolution with the following steps:
- Make sure you've run the game at least once with OBGE: Liquid Water version 1.1.0 or higher loaded in your mod list.
- Open your OBGE.ini (If you don't know where that is check the OBGEv2 documentation)
- Set iReflectionMapSize either to 0 to automatically set the reflection resolution to your current screen-width, or to whatever resolution you want the reflection map to be.
How To Customize The Water
There are six different aspects of the water that can be changed by the user. These are the strength of the water caustics, the choppiness or calmness of the water's surface, the turbidity (murkiness) of the water, the brightness of the water, the color of the water, and how quickly the water becomes darker as you get deeper underwater. To change these, open the file Oblivion\Data\Shaders\Water.fx and edit the values of the following variables:
- causticsStrength changes the strength of the caustics. The higher this value, the stronger the caustics appear. To disable water caustics, set the value to 0.
- choppiness changes how choppy or calm the surface is. The higher this value, the choppier the waves. For perfectly calm waters, set it to 0.
- turbidity changes how murky the water is. The higher this value, the murkier the water is. Murkier water will also make water depths darker, so change depthDarkness correspondingly.
- inScattCoeff changes how bright the water color is. The higher this value, the brighter the water becomes. This will also affect water transparency to an extent.
- inExtCoeff changes the color of the water, but nonlinearly. The lower the first value, the redder the water becomes. The lower the second value, the greener the water becomes. The lower the third value the blue-er the water becomes.
- depthDarkness changes how quickly water becomes darker as you get deeper underwater. Higher values make the darkening happen quicker. A value of 0 disables darkness at depths completely.
How To Load Shaders
The installation process described above will by default only cause Oblivion's water to be replaced with the new water shader. However, if you also want to load compatible OBGEv2 shaders other than the new water shader, do the following:
- Open the file Oblivion\Data\Shaders\Shaders.ini
- To enable a shader, replace the 0 on the line corresponding to that shader with a 1.
- To disable a shader, make sure there is a 0 and not a 1 on the line corresponding to the shader.
If a shader is not in the INI, that means it is not currently compatible with this water package, and it may never be. For example, no depth of field shader is currently compatible with the Water Package. Also, make sure that you don't load more than one SSAO shader, or the game will become laggy and look bad. To find out what each of the shaders in the INI does, read the OBGEv2 Shader Package documentation. If you wish to change a shader's variables, you must open the respective shader's file in the shaders directory, and edit the variables in there.
How To Edit Shader Variables
In order to change shader variables, you must follow the procedure outlined below:
- Open the file of the shader whose variables you wish to edit.
- Find a variable that is user-editable that you wish to change
- On the same line as the variable you wish to edit, if you see extern replace it with static const
- Change the value of the shader variable to whatever you want it to be.
Uninstallation
If you wish to return to using the OBGEv2 support plugin or shaderlist methods:
- Make sure all shaders in the file Oblivion\Data\Shaders\Shaders.ini are disabled, and save in a new slot.
- Disable and delete OBGE - Liquid Water.esp
- Delete the files Shaders.ini and Water.fx located in the Oblivion\Data\Shaders directory.
- Delete the file Oblivion\Data\Textures\Effects\water_NRM.dds
- Undo the Oblivion INI changes you made during installation.
- Extract OBGEv2 into your data directory, overwriting all files.
You should now be able to run Oblivion without OBGE: Liquid Water but with OBGEv2 and avoid any problems. However, if you wish to fully uninstall OBGEv2 as well follow the above steps and then follow the uninstallation procedures of OBGEv2.
Compatibility
This shader should compatible with anything except the following:
- Any Water Mods - don't use them.
- The OBGEv2 Shaderlist Method - don't use it.
- The OBGEv2 Support Plugin - don't use it.
- Other Mods Requiring OBGE - will work, but may suffer from graphical oddities (you'll have to test it out).
Troubleshooting
How To Report Bugs Helpfully
Read this readme fully, as well as the Bethesda forum thread, especially the FAQ's. If your problem is not described there, and you know for a fact it you did not have it with OBGEv2 before installing this mod:
Supply the following:
- Your Operating System.
- Your graphics card.
- The contents of your OBGEv2.log. This log is in your Oblivion directory.
- The contents of your OBSE.log. This log is in your Oblivion directory.
- The contents of your Shaders.ini.
The above documents should be posted exactly how they appear in the file, in spoiler (ie.
In addition, if what you are experiencing is a graphical bug of some kind, you should supply screenshots. It has been noted that Oblivion's screenshot function may not work with OBGEv2 installed, so in that case use FRAPS or some other 3rd party screenshot tool. You can convert the image from .bmp to .jpg in Wrye Bash. Upload the screenshot and post a link to it, so we can see what your problem actually looks like.
If your bug is with a shader effect, and you have altered any variables within the shader, also post the lines on which you changed anything, exactly how they are in the shader, again in spoiler tags.
We can't really help all that well without the above information, as especially with graphical errors, it can hard to describe them in writing in a way that we will be able to understand what's going on.
FAQ's
Q: Does OBGE: Liquid Water require any specific hardware to run?
A: OBGE: Liquid Water uses Shader Model 3, which means you must have an SM3 compatible graphics card.
Q: Why is the shader ________ incompatible?
A: Most likely due to unfixable load order issues or due to issues caused by oblivion's default water plain not rendering in the depth buffer.
Q: Why does the water render over rain?
Q: Why does water render over magic effects?
Q: Why does water render over other effects such as fire?
Q: Why can't I see water through cobwebs?
Q: Why can't I see water through light beams?
Q: Why can't I see water through other transparent objects?
A: These are all unfixable issues with transparency. You'll have to live with them or uninstall the OBGEv2 Water package.
Q: Why does Lake Arrius act very weirdly, with the water being rendered at incorrect heights?
Q: Why does water not in the current cell sometimes render at the wrong height or not at all?
A: These are all unfixable issues caused by the required assumption that all water is located on the same plain as the water in the current cell. You'll have to live with them or uninstall the OBGEv2 Water package.
Q: The water looks weird in some weather conditions and isn't blending into fog correctly, why?
A: HDR and Bloom are rendered before the water is, and so they aren't applied to the water. This means that water color might not blend into the environment correctly if they are enabled. You can fix this by disabling HDR and Bloom.
Credits
Bethesda Game Studios - For creating TES IV: Oblivion, and allowing us all to create mods such as this for it
CptJoker - For his lava textures that are used for rendering lava when the water package is installed
Ethatron - For providing an updated OBGE dll that has the capability to pass the reflection map to the water shader
Hrnchamd - For creating the bit of code that led to accessing worldspace coordinates in shaders
iPrimE - For discovering how to correctly linearize the depth buffer, and the SSAO fog fix hlsl code
jonwd7 - For creating the initial water caustics, and creating the basis and majority of the current plugin
phal - For his MGE water shader initially being an inspiration for this one, and for his high quality water normal maps
Scanti - For significantly improving the original Oblivion Graphics Extender to create OBGE version 2
shadeMe - For many major and minor updates to OBGEv2 and for the Construction Set Extender
Timeslip - For creating the original Oblivion Graphics Extender, without which no shader replacements could exist
Tomerk - For the water shader itself, and for a bit of the shader handling code in the included plugin
vtastek - For allowing his Godrays shader for OBGEv2 to be modified and released with this package
wrinklyninja - For maintaining the official OBGE thread on which this package's development was discussed
The Rest of the OBGE Contributors - For too many minor and major updates and shaders to mention here
The TES Modding Community - for providing support during the development of this water package
And to various articles on how to render realistic looking water.
Change Log
1.1.0:
- Provides Ethatron's for the memory leaks: this mod is now stable
- Added lava rendering using textures from CptJoker's Real Lava mod
- Fixed water aliasing when running HDR (HDR still does not apply to the water)
- Reduced specular highlights in bad weather
- Fixed water height issues in Anvil, Cheydinhall and the Imperial Arboretum
- Added a section to the ReadMe about customizing the water
- Added a section to the ReadMe about editing shader variables
- Added a section to the ReadMe about changing the reflection resolution
- Renamed the mod to OBGE: Liquid Water
1.0.1:
- Added another step to installation, fixed a bug with AMD cards
1.0.0:
- Initial Release