Athmospheric Scattering

guru

15-01-2009 18:18:28

Hey,

I stumbled upon this very interesting paper on atmosphereic scattering using precomputation: http://www-ljk.imag.fr/Publications/Bas ... index.html (PDF) and http://evasion.inrialpes.fr/~Eric.Brune ... tering.zip (source). The results are pretty impressive and as source is available so I don't think its very difficult to get it to run in ogre.

The demo runs fine under linux, too. I don't think I will find the time to do it myself right now but maybe I can find the time next week. Would this be a worthy addition to Caleum?

cdleonard

16-01-2009 06:54:49

It would be very nice to have an alternate implementation of a SkyDome; one that properly accounts for height above the ground. Simply making a class which wraps parameters would work nicely.

Their shaders are all written in glsl; those have to be somehow ported for inclusion in Caelum.

I tried to look at the demo but it didn't work for me. Probably because I have an ATI card? I did eventually managed to get the c++ and glsl code to compile but it hangs inside the driver somehow.

xadh00m

16-01-2009 12:43:30

It did not work for me either... they use geometry shader which are not supported on my current machine.
I also have issues with the tiffio lib. It seems that the distribution of the code was not very motivated...

xad

guru

16-01-2009 15:10:31

Sorry to read you both had these problems with getting the demo to run. All I had to do (using gentoo linux and gcc 4.3.2, tiff 3.8.2-r5, opegl 7.0, glut 1.0, glew 1.5.1, glu 7.0), was to include <cstring>, comment out line 679 ('::exit' has not been declared) and compile with "gcc Main.cpp -o main -lGL -lGLU -lGLEW -lglut -ltiff".

I have a 8800gt, so I didn't have problems with geometry shaders. It's true that in order to keep directx compatibility the GLSL stuff would have to cg'ed. I'm not sure it would be a pleasant experience...

cdleonard

20-01-2009 07:07:03

Sorry to read you both had these problems with getting the demo to run. All I had to do (using gentoo linux and gcc 4.3.2, tiff 3.8.2-r5, opegl 7.0, glut 1.0, glew 1.5.1, glu 7.0), was to include <cstring>, comment out line 679 ('::exit' has not been declared) and compile with "gcc Main.cpp -o main -lGL -lGLU -lGLEW -lglut -ltiff".
I did all that; but it still froze for me. I also had to modify the glsl files a bit; it seems ATI's glsl compiler is less tolerant of fragment program constructs in vertex programs.

I have a 8800gt, so I didn't have problems with geometry shaders. It's true that in order to keep directx compatibility the GLSL stuff would have to cg'ed. I'm not sure it would be a pleasant experience...
Seems like a very fun way to learn the equivalences between glsl and cg/hlsl. A variant of the original glsl sources could probably still be used in OpenGL mode; at least for comparison.