Oblivion Graphics Extender
This thread is a catch-all discussion for anything related to the Oblivion Graphics Extender (OBGE or OBGEv2).
Previous Threads: http://www.gamesas.com/index.php?showtopic=1045352, http://www.gamesas.com/index.php?showtopic=1047648, http://www.gamesas.com/index.php?showtopic=1050580, http://www.gamesas.com/index.php?showtopic=1056861, http://www.gamesas.com/index.php?showtopic=1057645, http://www.gamesas.com/index.php?showtopic=1060479, http://www.gamesas.com/index.php?showtopic=1067368, http://www.gamesas.com/index.php?showtopic=1072753, http://www.gamesas.com/index.php?showtopic=1074452, http://www.gamesas.com/index.php?showtopic=1076282, http://www.gamesas.com/index.php?showtopic=1078966, http://www.gamesas.com/index.php?showtopic=1080264, http://www.gamesas.com/index.php?showtopic=1082970, http://www.gamesas.com/index.php?showtopic=1086305, http://www.gamesas.com/index.php?showtopic=1092614, http://www.gamesas.com/index.php?showtopic=1102453, http://www.gamesas.com/index.php?showtopic=1110112, http://www.gamesas.com/index.php?showtopic=1120859, http://www.gamesas.com/index.php?showtopic=1137696, http://www.gamesas.com/index.php?showtopic=1143824, http://www.gamesas.com/index.php?showtopic=1149596, http://www.gamesas.com/index.php?showtopic=1156288, http://www.gamesas.com/index.php?showtopic=1159993, http://www.gamesas.com/index.php?showtopic=1164320, http://www.gamesas.com/index.php?showtopic=1166939, http://www.gamesas.com/index.php?showtopic=1169114, http://www.gamesas.com/index.php?showtopic=1171490, http://www.gamesas.com/index.php?showtopic=1174351
See the http://www.gamesas.com/index.php?/topic/1177225-obgev2-water-package/ for the new water information and download links.
History & Introduction
Timeslip's Oblivion Graphics Extender
The Oblivion Graphics Extender is an OBSE plugin created by Timeslip that adds extra functionality to Oblivion's scripting language, focussed on the implementation and manipulation of graphics effects. It adds support for fullscreen shaders and extra HUD elements, provides information about graphics memory and screen resolution and allows you to clear some of oblivions textures from graphics memory.
Without Timeslip's original version Scanti probably wouldn't of known where to start in writing this project, so kudos to him. You can find Timeslip's Oblivion Graphics Extender http://timeslip.users.sourceforge.net/obge.html.
A number of mods take advantage of OBGE for their effects. These include:
http://www.tesnexus.com/downloads/file.php?id=16323
http://www.tesnexus.com/downloads/file.php?id=21424
http://www.tesnexus.com/downloads/file.php?id=30973
The Oblivion Visual Effects Project
This was a project started by IlmrynAkios that was dedicated to making Oblivion look better using various filters and low-level DirectX tricks, utilising OBGE for its effects. It spurred the discussion on the improvement of various areas of Oblivion's graphics, leading to a few released mods and some affiliated mods, proposed as part of the project but developed separately, being released. These are:
http://www.tesnexus.com/downloads/file.php?id=14339
http://www.tesnexus.com/downloads/file.php?id=15245
http://www.tesnexus.com/downloads/file.php?id=15566
The project is currently on haitus as various difficulties in its progression occurred, and IlmrynAkios found that his time available for work on it was becoming very limited.
Oblivion Graphics Extender v2
A continuation of both Timeslip's work on expanding the functionality to Oblivion's scripting language regarding the implementation and manipulation of graphics effects and OVEP's work in making Oblivion looking better using a variety of graphical effects, OBGEv2 is both the name of Scanti's rewrite of the OBGE OBSE plugin and the accompanying project that is focussed on the creation of various post-processing effects to improve Oblivion's graphics.
Scanti's rewrite of OBGE is centered around the exposure of more information about Oblivion's graphical processes and the fixing of bugs present in the original. The original OBGE should not be used alongside OBGEv2, which should be backwards-compatible with OBGE mods.
The modders that make up this project work hard to bring you the effects they create, so please respect them for taking the time to do so. If you would like to contribute, please feel free to participate in the sharing of knowledge and ideas to help us strive to complete our goal. If you are able to find useful resources that can benefit the project, please feel free to share them as well. This project is in a Beta Phase and will probably be in that state forever as add new things are added to it. Expect bugs when using newly created shaders, or when using/tweaking the shaders on your own.
Due to the Work In Progress nature of OBGEv2, few mods have been made to use it, but these include:
http://www.tesnexus.com/downloads/file.php?id=18385
http://www.tesnexus.com/downloads/file.php?id=27972
In addition, all OBGE mods may be used with OBGEv2 instead of OBGE.
*Attention*
If you are having any problems, please read the OP and the FAQ very carefully before posting. If your question is not answered, then report the bug as detailed in the 'How To Report Bugs Helpfully' section below.
Downloads
Pre-requisites:
http://obse.silverlock.org/ - v0019 is required.
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3
http://www.tesnexus.com/downloads/file.php?id=30054
http://github.com/scanti/Oblivion-Graphics-Extender-v2
Screenshots/Videos
See the Nexus page for screenshots and videos of the effects currently available. The effects seen in some of these screenshots/videos may have been obtained by tweaking the variables in the shaders involved.
OBGEv2 Shaders
Below is a list of all the shaders available from the OBGEv2 project on TES Nexus. The list does not include any shaders that may have been added since this readme was updated, or any shaders that are only available for download from the project's forum thread. Version numbers are taken from the version numbers within each shader file, and are not indicative of relative quality.
Depth of Field Shaders:
These shaders optionally give a Depth of Field effect, progressively blurring objects with increasing distance from the focus point (what the crosshairs point at), or a Distance Blur effect, progressively blurring objects with increasing distance from the player.
Circular Bokeh Depth of Field - Bokeh_Circle_DoF.fx
Crysis Depth Of Field (v1) - CrysisDoF.fx
Depth of Field (v7) - DepthOfField.fx
Hexagonal Bokeh Depth of Field - Bokeh_Hexagon_DoF.fx
Pseudo-Bokeh Depth of Field - Pseudo_Bokeh_DoF.fx
Ambient Occlusion (AO) Shaders:
These shaders use stylised lighting to add depth and contrast to the scene, mainly by shadowing recesses. Two types of AO shader are available: Horizon-Based AO (HBAO) and Screen Space AO (SSAO). These are all SM3 shaders.
Horizon-Based Ambient Occlusion - HBAO.fx
Screen Space Ambient Occlusion - ssao_test.fx
Performance Screen Space Ambient Occlusion - ssao_perf.fx
Ring Screen Space Ambient Occlusion - Ring_SSAO.fx
Volumetric Screen Space Ambient Occlusion - Volumetric_SSAO.fx
Other Shaders:
Bleach Bypass - HLSLbleachbypass.fx
CelShader+EdgeAA (v0.3) - CelShader+EdgeAA.fx
Color Effects (v5) - ColorEffects.fx
Color Grading - HLSLColorGrading02.fx
Crysis Color Mood (v0.2) - ColorMood.fx
ENB Color Effect (v2) - ENBColorEffect.fx
Godrays (v4.2) - Godrays.fx
Normal Filter Anti-Aliasing - NormalFilterAA.fx
Screen Space Indirect Illumination (SSII) - SSII.fx
Sharpen - obsharpen.fx
Vignetting - HLSLvignette.fx
How To Report Bugs Helpfully
Read the OP and the readme fully, especially the FAQs. If your problem is not answered there, do the following:
Supply the following:
- Your Operating System.
- Your graphics card.
- Your OBGEv2.txt. This log is in your Oblivion directory.
- Your OBSE.txt. This log is in your Oblivion directory.
- Your shaderlist.txt.
The above documents should be posted exactly how they appear in the file, in spoiler tags.
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, in codebox 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.
F.A.Q.s
Q: Is this a RELz? Should I download this?
A: This is a Beta (and hopefully stable) release. It will always be a work in progress and could contain bugs from time to time. If the thought of this scares you then this probably isn't the mod for you.
All shaders are supplied with no documentation of any sort besides what is on the Bethesda Oblivion forum thread or in the shader file itself. Hence there is an element of DIY involved in using the products of this project, especially when it comes to tweaking the settings of the shaders. Within each shader effects file there may or may not be a section at the beginning of the file detailing any variables that you can change, and what they do. You are advised to check there before posting if you wish to tweak any shaders.
Q: Does this require OBSE? If so, any specific version?
A: Yes, it does require OBSE, and you must use at least v0019, however you are advised to use the latest version available.
Q: Does OBGEv2 require any specific hardware to run?
A: The shaders are compatible with both ATI and NVIDIA graphics cards, although some shaders (marked with "SM3" above) require a Shader Model 3 compliant graphics card to run. Any NVIDIA graphics card that is GeForce 6 Series (released 2004) or newer supports Shader Model 3.0. Any ATI graphics card that is Radeon X1000 Series (released 2005) or newer supports Shader Model 3.0.
Q: How do I get involved with this project?
A: There are a few ways that you can get involved:
If you can write shader code, then you can get stuck in making your own effects right away. The shaders can be written in either HLSL or ASM.
If you can write in C/C++, then perhaps you would be able to help me in my work on the OBSE plugin. I have a github respository so you can fairly easily create a fork and add your own changes. This site also allows you to create your own wiki pages for the project. As I don't speak wiki anyone who can is more than welcome to contribute to it.
It would also be beneficial if you know anything about low-level DirectX and the OBSE plugin system.
If you can't do either of these things, you can still contribute support, articles and papers on graphical effects that could be implemented in Oblivion, and whatever else you can bring to the project. Especially cake or ice cream. :cake: :icecream:
Q: I found a bug...
A: Good for you. If you find a bug, please report it as detailed in the 'How To Report Bugs Helpfully' section above. We can help you more when you explain the problem better.
Q: I cannot see an effect I have installed, and my OBGEv2 log has the line "Failed to load" after the line "Loading shader ()". How do I fix this?
A: This results from OBGEv2's inability to compile the shader effects you are trying to load. Make sure that you have the DirectX update linked to above installed, and if using a shaderlist, that you have spelled the names of the shaders in your shaderlist.txt exactly as they should be, with the .fx extension. In the case of some effects, you must also have a graphics card that is Shader Model 3 compliant.
Q: ScreenEffects/Realistic Health/OVEP Motion Blur/OVEP Forward Motion Blur or setting bUseLegacyCompiler to 1 causes OBGEv2 to crash. How do I fix this?
A: If your shader uses the half variable type then OBGEv2 will try to use the legacy compiler. If you are missing the d3dx9_31.dll file then OBGEv2 will crash. You will need to copy over the d3dx9_31.dll from the Extras folder into your Oblivion game folder to fix the problem.
Q: The ordering of the objects on the screen is messed up or the game menu has no buttons! Why is this happening?
Q: Once I got the effects to work, my AA disappeared? WHY?!?
A: The method used to expose the information used to read the depth buffer is incompatible with Anti-Aliasing. This is reported to be the case on both ATI and NVIDIA graphics cards, although owners of ATI graphics cards can force AA through ATI Tray Tools without problems. The only solution is to edit the OBGE.ini file in your My Documents\My Games\Oblivion folder and change this line:
[DepthBuffer]bUseDepthBuffer=1
to:
[DepthBuffer]bUseDepthBuffer=0
This will however cause any effect that uses the depth buffer to stop working properly. This currently includes all the SSAO and Depth of Field shaders and the Godrays, NormalFilterAA and CelShader+EdgeAA shaders.
Q: A shader is listed saying it has multiple effects. What does that mean?
A: If a shader has multiple effects, it means that it rolls many effects into one file, and gives you the ability to choose which of these effects, or combinations of these effects, are applied to your game. This has the advantage that you can cut down on the number of shader files you have to keep track of. You will generally be able to make these selections by changing variables in the shader.
Q: How do I change/tweak shader settings/variables?
A: Open up the shader .fx file in a text editor such as Notepad. The variables are found at the beginning of the file, and may be labelled as tweakable and/or commented with information regarding them.
Alternatively, you can alter most shaders' variables in-game using the Support Plugin, though these changes are not recorded in the shader file.
Q: My Godrays is just a searchlight in clear weather.
A: Godrays are best displayed in cloudy weather types, from 6 to 8 in the mornings and evenings. However, if you get the searchlight effect, you have to edit the shader's FOV setting to match your ingame FOV. An example would be if you play Oblivion with a FOV of 95, you have to edit your Godrays shader file to a FOV of 95. To edit the shader, change the value of "#define fov", near the beginning of the file, to the value of your FOV.
Q: Why do objects in the distant have weird black stuff on them when fog weather is active?
Q: Using the SSAO shader does weird things to stuff underwater. What gives?
A: That is from the SSAO shader, and occurs because OBGEv2 does not give any information on fog, so the effects are applied as though there is none. Hopefully this will be fixed in a future update.
Q: SSAO demolishes my FPS; any ideas?
A: The easiest way to improve your frame rate while using the SSAO shader is to reduce the sample size, and correspondingly increase the sample area. There is a performance version of the shader, that lowers quality slightly in return for a large performance boost, and an alternate version that produces a weaker effect at a fraction of the performance cost. The reason the SSAO shader has such a large performance hit is because it has to calculate information about surface normals from scratch, as this information is not available to access.
Q: How do I get the EdgeAA effect?
A: The EdgeAA effect is part of the CelShader+EdgeAA shader, to enable the effect change the following variables as shown:
flgEdgeMask = 0;flgEdgeAA = 1;
Q: Where is the src folder with the source code?
A: The source is not included in the package. Instead, it is available on the GitHub repository. That means you will always have access to the latest version of the code and people can contribute their own code to the project.
Settings recommended by users
Note that these may have been recommended for previous versions of shaders and in later versions may not give the same desired effect. If settings for variables aren't given, then they should be left at the default values.
Bleach Bypass
By blackspider & T.A.Z:
extern float Opacity = 0.70;
CelShader+EdgeAA
By blackspider:
extern float edgeStrength = 4.f;extern bool flgEdgeAA = 1;extern float edgeAABlurAmt = 0.06;
Circular Bokeh Depth Of Field
By Leviathan1753:
extern float base_blur_radius = 0.6;extern float R = 11.0;
By T.A.Z:
extern float base_blur_radius = 1.0;extern float R = 14.0;
Color Effects
By Dekidasu:
extern float Saturation = 0.5;extern float Brightness = 1.1;extern float FGIntensity = 0.5;extern float BHMagnitude = 1.42;extern float BHBrightness = 9;
By Smooth: (for a 'local contrast'-type effect)
extern float Saturation = 0.8;extern float Brightness = 1.1;extern float GContrast = 1.6;extern float GBrightness = 1.2;
Color Grading
By blackspider & T.A.Z:
extern float saturatex = 0.10;extern float opacity = 5.4;
Color Mood
By Omega Novious:
extern float moodR = 0.5;extern float moodG = 0.5;extern float moodB = 0.5;
By Dekidasu:
extern float moodR = 0.9;extern float moodG = 0.75;extern float moodB = 0.35;
Depth Of Field
By Psymon:
float DoFAmount = 5;
By Smooth:
extern bool DoDistanceBlur = true;extern bool DoWeaponBlur = false;extern float DoFAmount = 4.1;extern float FullFocusRange = 0.5;extern float NoFocusRange = 0.9;
ENB Color Effect
By wetibroman:
extern float BrightnessMult = 1.05;extern float BrightnessPow = 0.75;extern float tempF0 = 0.06;
Godrays
By Smooth:
extern float noonshaftex = 0.93f;extern float noondecay = 0.89;extern float endevening = 22.0f;extern float Density=0.65;extern float Weight=0.65;extern float noonsaturate = 0.015f;
By blackspider:
extern float goldensaturate = 0.640f;extern float noonsaturate = 0.024f;
By T.A.Z:
extern float eveningshaftex = 1.5f;extern float goldensaturate = 0.640f;extern float noonsaturate = 0.024f;
Normal Filter AA
By Smooth & T.A.Z:
extern float filterStrength = 1.1;
ScreenControls (from ScreenEffects)
By blackspider:
brightness = 1.2gfmagnitude = 0.399999959362961
Sharpen
By blackspider:
extern float sharpval = 1.8;
Screen Space Indirect Illumination (SSII)
By T.A.Z:
extern float IIStrengthMultiplier = 1.4;
Volumetric SSAO
By blackspider & T.A.Z:
extern float aoRadiusMultiplier = 2.1;extern float aoStrengthMultiplier = 1.4;extern float aoClamp = 0.6;extern float ThicknessModel = 101;extern float FOV = 90;extern float luminosity_threshold = 0.90;