Oblivion Graphics ExtenderThis thread is a catch-all discussion for anything related to the Oblivion Graphics Extender (OBGE).
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.chorrol.com/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 Test Alpha Phase. 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 list your problem in detail with the contents of your OBGEv2.txt and shaderlist.txt in codebox tags.DownloadsOBSE Plugin:
http://dl.dropbox.com/u/519253/OBGEv2.dll
http://github.com/scanti/Oblivion-Graphics-Extender-v2
http://www.microsoft.com/downloads/details.aspx?familyid=04AC064B-00D1-474E-B7B1-442D8712D553&displaylang=en
Shaders:
http://www.4shared.com/file/214651734/4dfc264c/godraystestshaderv3.html
http://cid-465896b69b9940e8.skydrive.live.com/self.aspx/Public/Oblivion%20Shaders/DepthOfField.fx
http://www.4shared.com/file/167174408/3f9a3b56/ArKano22_SSAO_V2.html
http://dl.dropbox.com/u/2584752/CelShader.fx
http://cid-465896b69b9940e8.skydrive.live.com/self.aspx/Public/Oblivion%20Shaders/InvertColours.fx
http://cid-465896b69b9940e8.skydrive.live.com/self.aspx/Public/Oblivion%20Shaders/BlurHighlight.fx
http://www.4shared.com/file/211031667/a361d09e/obsharpen.html
http://dl.dropbox.com/u/2584752/ColorMood.fx
InstallationDownload the OBSE plugin and whatever shaders you want from the links above. The OBGEv2.dll goes in your "data/obse/plugins" folder. The shaders go in your "data/shaders" folder.
The next step is to create a text document with the file name "shaderlist.txt" in your "data/shaders" folder. To it, add the names of the shader files you have installed and wish to see the effects of into the file. Make sure to spell them exactly, and include the .fx extension. There is a specific order required for the file names added, as listed below.
The effects will be loaded when you start up Oblivion. You can disable the effects by opening the console and typing "showtestshader 0" (without quotes), and enable them again with "showtestshader 1" (without quotes). It is not possible to deactivate and activate individual shaders from the console.
Proper shader load orderThis should be the order of your shader list with the current release of shaders.
-SSAO
-DepthOfField
-Godrays
-Edge detection shader
-Any other shaders available
ScreenshotsSSAO - http://www.makeagif.com/i/NFl-X3 http://www.makeagif.com/i/6mZVp-
Godrays - http://img10.imageshack.us/img10/8215/sunrisef.jpg http://img407.imageshack.us/img407/3904/36697537.png http://img684.imageshack.us/img684/678/skyview03.jpg http://img109.imageshack.us/img109/4836/omgheaven02.jpg http://img109.imageshack.us/img109/8284/omggray02.jpg http://img690.imageshack.us/img690/1994/god101.jpg http://img28.imageshack.us/img28/9109/dofhand01.jpg
Depth of Field v2 - http://img193.imageshack.us/img193/3404/dofview01.jpg http://img42.imageshack.us/img42/8996/dofv2.jpg http://img39.imageshack.us/img39/6130/dofv2a.jpg
Depth of Field - Toggleable Distance Blur (setting available in v4) - http://img269.imageshack.us/img269/8114/distantblur02.jpg http://img690.imageshack.us/img690/2908/distantblur01.jpg
Edge Detection Shader - http://s659.photobucket.com/albums/uu320/shademe/shader%20stuff/?action=view¤t=Oblivion2009-12-1613-02-40-00.jpg http://s659.photobucket.com/albums/uu320/shademe/shader%20stuff/?action=view¤t=Oblivion2009-12-1914-23-01-81.jpg http://s659.photobucket.com/albums/uu320/shademe/shader%20stuff/?action=view¤t=Oblivion2009-12-1613-07-41-94.jpg http://s659.photobucket.com/albums/uu320/shademe/shader%20stuff/?action=view¤t=Oblivion2009-12-1505-54-41-43.jpg
Color Mood Shader - http://filesmelt.com/dl/b92GnD.gif http://filesmelt.com/dl/p8Af-t.gif
Information for shader codersBelow is a list of the currently available effect file constants:
Effect file constants
thisframe
The current frame's texture or the texture from the last rendered shader.
lastpass
The texture of the last pass in a multipass effect.
lastframe
The last frame that was rendered texture.
Depth
This texture contains the depth buffer.
rcpres
This contains the reciprocal of the screen resolution. i.e. 1/width, 1/height.
bHasDepth
True if there is a valid depth texture.
m44world
The world matrix. The translation data of the camera.
m44view
The view matrix. The rotational and scale data of the camera.
m44proj
The projection matrix.
f4SunDir
This contains the direction of the sun from the camera's position as a unit vector. Ignore the w value for now. I may add a
value to it later.
f3EyeForward
This is the forward unit vector of the camera. Basically it tells you which direction the camera is pointing in.
f4Time
This contains the current game time.
[0]/x = number of seconds passes in that current game day.
[1]/y = game time hour
[2]/z = game time minutes
[3]/w = game time seconds
So if the game time is 5.30 and 10 seconds then f4Time would equal - [19810 ,5 ,30 ,10]
texture textureName < string filename="textureFilename"; >;
This loads a texture file into your shader, given by the filename string, which is relative to the data\textures directory.
F.A.Q.Q: Is this a RELz? Should I download this?A: OGE is a Work In Progress project in its infancy, and is based around an alpha-stage OBSE plugin. If you are happy installing stuff at this level of release, and with the possibility of there being numerous bugs, then go right ahead. If not, then perhaps OGE is not for you at this time, and you should wait for it to reach beta or higher release levels before trying it out.
OGE material, including shaders and the OBSE plugin, 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 this require OBSE? If so, any specific version?A: Yes, it does require OBSE. You are advised to use the latest version available. You can get OBSE http://obse.silverlock.org/.
Q: Does OGE require any specific hardware to run?A: The shaders are compatible with both ATI and NVIDIA graphics cards, although both the Godrays and Depth Of Field 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. 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.
Q: I found a bug...A: Good for you. If you find a bug, please list the error in detail here. We can help you more when you explain the problem better.
Q: My screen is all blue?A: Blue Screening 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 EXACTLY as they should be, with the .fx extension, 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: My Godrays is just a searchlight in clear weather.A: Godrays is best displayed on cloudy weather types, in the morning from 6 to 8am and 7 to 9pm. 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, open it up in Notepad and change the value of "#define fov", near the beginning of the file, to the value of your FOV.
Q: I get blue light rays during the day time.A: Go in the godray.fx file and reduced the "static const float saturate = 0.540f;" from 540 to 040, this will decrease the saturation values to prevent your screen from turning blue.
Q: Why do objects in the distant have weird black stuff on them when fog weather is active?A: That is from the test SSAO. The author stated that it had some fog bugs. Until it's fixed, they will be there.
Q: Once I got the effects to work, my AA disappeared? WHY?!?A: The method used to expose the information used to create the shader effects is incompatible with Anti-Aliasing. This is reported to be the case on both ATI and NVIDIA graphics cards. No confirmed solution is available at this time.
Q: SSAO demolishes my FPS; any ideas?A: http://www.gamesas.com/bgsforums/index.php?showtopic=1060479&st=160&p=15476196entry15476196 provided by BDBB is worth a shot, it's helped quite a few people.