This thread is a catch-all discussion for anything related to the Oblivion Graphics Extender (OBGE).
Previous Threads: http://www.gamesas.com/bgsforums/index.php?showtopic=1072753, http://www.gamesas.com/bgsforums/index.php?showtopic=1074452, http://www.gamesas.com/bgsforums/index.php?showtopic=1076282, http://www.gamesas.com/bgsforums/index.php?showtopic=1078966
What is it?
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.
You can get OBGE http://timeslip.users.sourceforge.net/obge.html. The original was found to sometimes cause a crash on transition, and an attempt to fix this was made, in the form of a debugged version, found http://www.tesnexus.com/downloads/file.php?id=25912.
What uses it?
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=27972
http://www.tesnexus.com/downloads/file.php?id=18385
Oblivion Visual Effects Project (OVEP)
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 (The Reboot)
What is it?
Sharing the same name as the plugin that first let modders change the game's graphical effects, OGE is a continuation of the effort started by OVEP to improve Oblivion's graphics. It is centred around Scanti's work on exposing more information about Oblivion's graphical processes, and the use of this information to create post-processing effects.
Scanti has recently begun work on rewriting OBGE to incorporate the new information exposed, and fixing bugs in the original. This rewrite is entitled OBGEv2, and that is what this project is based on, and what is available for download below. The original OBGE should not be used alongside OBGEv2, which is backwards-compatible with OBGE mods.
While it is still in its EARLY stages, the dedicated modders that make up this project are working hard to bring a new age to Oblivion. 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.
Please respect the hard working people that take their time to bring this project together. This project is in a Beta Phase, and will probably remain in that state as Scanti continues to add new things to his plugin. Expect bugs when using newly created shaders, or when using/tweaking the shaders on your own.
*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/ - v0018 beta 6 is required.
http://www.microsoft.com/downloads/details.aspx?familyid=0CEF8180-E94A-4F56-B157-5AB8109CB4F5&displaylang=en
http://www.tesnexus.com/downloads/file.php?id=30054
http://github.com/scanti/Oblivion-Graphics-Extender-v2
Also available for download elsewhere are the following shaders:
http://www.4shared.com/file/224902826/1439a4b4/ssao_perf.html
http://www.4shared.com/file/225791759/4343cf84/godraystimev34.html - rename .fx file to Godrays.fx
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.
Shaders
Most of the project's shaders are now included in Scanti's OBGEv2 package at the Nexus page. Some updated and new shaders are also available from the Nexus page, or elsewhere, and can be obtained via the above links. The currently available shaders are:
CelShader+EdgeAA Shader (v0.3) - (CelShader+EdgeAA.fx)
- By shadeMe. Adds a cartoon-like black edge to objects, as seen in Borderlands, or smooths the edges of objects.
Color Effects Shader (v4) - (ColorEffects.fx)
- By WrinklyNinja. Adds a variety of photoshop-like colour effects, including luminosity-dependent film grain, sepia, saturation/contrast/brightness alteration, gamma contrast/brightness alteration, colour inversion and blur highlighting.
Crysis Color Mood Shader (v0.2) - (ColorMood.fx)
- By shadeMe. Tints the screen to alter the mood of the game, as seen in Crysis.
Depth of Field Shader (v5) - (DepthOfField.fx)
- By WrinklyNinja. Progressively blurs objects with increasing distance from the focus point (default at screen centre), or with increasing distance from the player.
Godrays Shader (v3.4) - (rename .fx file to Godrays.fx)
- By vtastek. Adds shafts of light emanating from the sun. The effect is only seen at certain times of the day.
Screen Space Ambient Occlusion (SSAO) Shader - (ssao_test.fx)
- By HawkleyFox. Uses stylised lighting to add depth and contrast to the scene. Has a large performance hit.
Screen Space Ambient Occlusion (SSAO) Performance Shader - (ssao_perf.fx)
- By HawkleyFox. A less accurate but much better performance version of the above shader.
Sharpening Shader - (obsharpen.fx)
- By vtastek. Sharpens the screen.
Version numbers are taken from the version numbers within each shader file, and may not be indicative of relative quality.
Installation/Usage
From the Nexus page, download the OBGEv2 package, the Support Plugin, and any updated shaders there. Also download any extra/updated shaders that are hosted elsewhere, using the above links.
To install everything, use the following procedure:
1. If you have obge.dll or DepthTest.dll in your Data/OBSE/plugins folder, remove them.
2. Decompress the downloaded packages using 7-zip or any compatible alternative.
3. Move the data directory in the OBGEv2 package to your Oblivion directory. Answer yes to any merge or overwrite prompts.
4. Move the contents of the Support Plugin package to your Oblivion/Data directory. Answer yes to any merge or overwrite prompts.
5. Copy any additional shaders' .fx files to your Oblivion/Data/Shaders directory, answering yes to any overwrite prompts.
6. Activate the Oblivion Graphics Extender Support.esp in the mod loader of your choice.
Using the Support plugin:
The support plugin allows you to toggle individual shaders on and off, and tweak their variables, in-game. To use it, activate the misc. item in your Inventory screen, and exit the inventory to see the configuration menu.
. Clicking a shader with the control key held down will deactivate it, while clicking a shader with the shift key held down will activate it.
. Clicking on a shader will bring you to another menu from which you can select a variable to alter.
. Once you have selected a variable, you will be brought to an input box which shall specify the type of variable, give some information on usage of the variable, and allow you to enter in a new value for that variable.
The support plugin will currently allow you to toggle the following shaders:
CelShader+EdgeAA*
Depth of Field*
Color Effects*
Crysis Color Mood*
Sharpening
Screen Space Ambient Occlusion (SSAO)
Screen Space Ambient Occlusion (SSAO) Performance
Godrays - rename .fx file to Godrays.fx
* - These shaders also support variable alteration. The others do not yet support it.
*Note*
If a shader is not listed in the above list, it will be nescessary to load it via the shaderlist.txt. To do so, open the shaderlist.txt file in your Data/Shaders folder, and add to it the name of the shader file that is not included in the support plugin's menu. Make sure to spell it exactly, and include the .fx extension. The shaders need a specific load order when they are entered into your shaderlist.txt, and it is as follows:
-SSAO
-Depth Of Field
-Godrays
-CelShader+EdgeAA
-Any other shaders available
DO NOT list non-OGE shaders (that is, any shaders that are not listed in the above 'Shaders' section) in your shaderlist.txt. Doing so may break the mod using that shader's effects.
How To Report Bugs Helpfully
Read the OP, 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 codebox 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.
Q: Is this a RELz? Should I download this?
A: The project has recently experienced its first 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.
Most shaders are supplied with no documentation of any sort besides what is on this thread. 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 OGE require any specific hardware to run?
A: The shaders are compatible with both ATI and NVIDIA graphics cards, although the Godrays, Depth Of Field and Color Effects shaders 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 Scanti in his work on the OBSE plugin. There is a github respositary so you can fairly easily create a fork and add your own changes. It would also be beneficial if you know anything about low-level DirectX and the OBSE plugin system. The respositary also allows you to create your own wiki pages for the project, which anyone who can is more than welcome to do.
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 reported 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 (
A: This results from OBGEv2's inability to compile the shader effects you are trying to load. Make sure that you spell the names of the shaders in your shaderlist.txt EXACTLY as they should be, with the .fx extension, and you have the DirectX update linked to above installed. 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 is not working with OBGEv2. How do I fix this?
A: To fix this, open up the mod's shader file, and replace all instances of 'half' in it with 'float', then save the file. The shader will now work.
Q: The ordering of the objects on the screen is messed up! 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. 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 the SSAO (both versions), Depth of Field, Godrays 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. Example would be if your playing Oblivion on a 95 FOV, you have to edit your Godrays to a 95 FOV. 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: This is an unintended side effect of the SSAO effect. It occurs because the SSAO shader applies its effect regardless of the presence of fog, which would otherwise hide it. This can only be fixed when information about fog distances becomes available to the shader, until which time the bug is remain.
Q: SSAO demolishes my FPS; any ideas?
A: First, try the SSAO Performance shader, which has a slightly lower quality effect, but a great reduction in performance hit over the full SSAO shader. The easiest way to improve your frame rate while using the full SSAO shader is to reduce the sample size, and correspondingly increase the sample area. BDBB recommended values of:
ssao_sample_size = 1
ssao_sampling_area = 9.2
Q: Can the SSAO shader be optimised any more?
A: It is not possible to optimise the shader any further without access to information about the surface normals from the graphics renderer. As it is, the shader has to work these out from scratch, and this is what reduces performance the most.
Q: How do I get the EdgeAA effect?
A: The EdgeAA effect is part of the Edge Detection 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: Scanti has set up a GitHub repositary. That means you will always have access to the latest version of his code and people can contribute their own code to the project. The site is linked to above in the 'Downloads' section.