Chromatic Dispersion



This tweaks the fantastic chromatic dispersion shader from the RealSceneGraphManager to get rid of the red bar on top of the screen. Please report bugs and problems in the comment section. I could only test this on my 8800GTX and it works for me!

Special thanks to Dafama2k7 for porting this to prey!

Btw. I am not sure about the requirements! This is my first release so forgive me for my mistakes and shortcomings!



TheRealSceneGraphManager's Chromatic Dispersion Special FX

I got bored one afternoon/evening/early morning (in other words, business as usual whenever I make random mods like this)
and thought it would be kinda cool to port some of the effects from Crysis and the real world into other games such as 
Oblivion and Doom 3. This particular piece of work makes some changes to the heat haze fragment programs (or pixel shaders,
if you're a DirectX nut like myself) in order to simulate the effects of chromatic dispersion. What is this, you ask? It's
the faint rainbow-y effect you get whenever light is bent somehow, usually through glass and the like. Drastic changes in 
air temperature also fiddle with how light gets absorbed, which is why you get that 'bendy' effect above a fire and the 
reasoning behind bullet trails in those kinds of movies/games. Anyways, as you may have learned in physics classes,
(if you've taken them) not all wavelengths/colors are bent the same way. In fact, the different bands kind of fan out, 
resulting in the rainbow effect. That's all there is to it. While the inspiration for this is physically-based, this 
implementation is not, and you only get three bands in red, green and blue. The amount of math required to procedurally
generate a perfect representation of this is most definitely not available on today's hardware, so for now we'll have to
settle for an approximation. It still looks cool, though ;)

Simply extract the zip-file to the prey-folder where prey.exe is located!

Remove the folder ChromaticDispersion from the prey-folder!

Should work with anything and everything. This is the only mod I've ever seen or heard of that messes with these particular files.

V1.1: This one uses a compare instruction. As I am a noob with a big rig, I have no idea whether you need a fully SM3.0 compatible
graphics board!

Performance Notes:
This is pretty thoroughly optimized (it's been simplified to literally four more instructions than the default effect) so it's pretty much
a non-issue. That being said, I have a GeForce 7900GTX and what's insignificant for me might be a bit more performance-hungry on older hardware.
You have *no* excuse not to use this mod :D
Note: The dispersion needs two more relatively slow texture reads!

V1.1: Two more instructions that should not really decrease performance!

External Usage:
Feel free to add on, modify, or include this stuff in your mods. I only ask that you give me credit for the original shader.

Version 1.1

Red bar fix [Langenscheiss]:
The files are tweaked a little to fix the red bar on top of the screen.
Please report if it's not the case for you.

Possible explanation of the problem for the experts (I'm not 100% sure!):

Reads of the _currentRender screen-texture at y-coordinate near or beyond the clamped 1.0 limit apparently do not give any result on some hardware (like my 8800GTX) which I believe is an engine related problem. 
However the dispersion interfers with the 0.0-1.0 clamp causing the upper margin of the screen only to show red colours as the shader cannot determine the g and b values. With two further instructions, this little fix simply disables dispersion for the upper margin of the screen!

Credits for the original shader of course go to TheRealSceneGraphManager!

There are no comments yet. Be the first!