Fake HDR lighting, by Timeslip http://timeslip.chorrol.com version 1.2 ***************** ** Description ** ***************** This mod adds a fake HDR effect using sm2.0 shaders for us poor unfortunate souls who don't own sm3.0 capable graphics cards. I don't know how it compares to the sm3.0 effect, since I haven't got a sm3.0 card, and can barely run oblivion at all. It will cause a speed hit, but again, I cant compare it to the sm3.0 effect. It does have the major advantage of being completely compatible with AA. The HDR effect is configurable. If you open the file 'data\shaders\fakehdr.fx', there are several variables you can edit. SinglePixel If you set this to true, the brightness of the screens central pixel will be used in place of the average of the whole screen. If you don't declare this variable at all, (i.e. comment out the whole line,) you will be stuck in SinglePixel mode, and the ToggleSinglePixelKey variable will be ignored. This allows the dll to save about 1/3 of its graphics memory usage. AffectMenus Set this to true if you want the shader to be applied to all menus as well as in game. ToggleKey Sets a key that can be used in game to toggle the HDR effect on and off. By default it is '107' (The '+' key on the numpad) ToggleSinglePixelKey Sets a key that can be used in game to toggle SinglePixel mode on and off. By default it is '109', the numpad '-' key. ToggleAffectMenusKey Sets a key that can be used in game to toggle AffectMenus on and off. By default it is '106', the '*' key on the numpad. ReactionSpeed Controls how fast your eyes adjust to changing lighting conditions. Higher values cause faster reaction times. BloomScale Controls the brightness of the bloom effect. Higher values cause a brighter bloom. HDRScale Controls your eyes ability to adjust to changing lighting conditions. Lower values reduce your eyes ability to adjust. HDRAdjust Controls how much brighter than the average something has to be before it starts getting bloomed. If these controls aren't sufficient, you could completely replace the shader to apply any post processing effect you like. There are 5 variables which get set by the dll which you are able to make use of. tex1 This contains a copy of the unprocessed backbuffer tex2 This contains the results of the previous pass. In the first pass, it will contain the results of the last but one pass from the previous frame. If you comment out this variable, the dll will not create this texture saving approx 1/3 of the dlls graphics memory usage. rcpres This contains the reciprical of the screen resolution CurrentEye This holds the current brightness level that the 'eye' is adjusted to CurrentBrightness This holds the current brightness of the screen ****************** ** Installation ** ****************** The zip file must be extracted to the base oblivion directory, and not the data folder. 'd3d9.dll' should end up in the same folder as oblivion.exe, and 'fakehdr.fx' should end up in 'data\shaders\' This mod is not compatable with older versions of ATi Tray Tools. If you have any version older than 1.0.5.880, this mod probably will not work correctly with it. If you do not wish to update ATT, there is an ATT compatability patch available from my website. ****************** ** Known issues ** ****************** The shader affects the HUD. It is a fullscreen post-processing effect, so there's no way around this. The shader reduces the range of colours you can see. To make room for the extra brightness needed when walking from a dark room into a bright one, the brightness of completely white pixels is dropped slightly. There's nothing that can be done about this without using floating point textures. (This is why it's called a _fake_ HDR effect.) ************* ** Credits ** ************* The dll was written by me, and is based on MGE code, which was also written by me. The shader file contains a little code from the DirectX SDK. (The blur weight values.) - Twang, for pointing out that ATT was incompatable with this mod. - scanti, for pointing out that performing 10 StretchRects was faster than a single GetRenderTargetData. I could have sworn that the whole point of PCI-E was to fix this sort of thing... - luother, for suggesting some better default shader settings - shirosae, for writing some impressive shader tweaks - Daf, for helping out with the ati tray tools thing.