Real-time Caustics Rendering

Chalnoth said:
The GeForce3 did have high-precision shader math (FP32, apparently), but only for the first stage of shading, which was rather limited in the performable operations.
Well obviously, or else HILO and even the most basic dependent texture access like EMBM would be useless.
 
musawirali said:
As an update, the algorithm has been enhanced more towards a per-pixel rendering of the caustics map. Again, I just saw that someone had posted about this but unfortunately I wasn't able to see this post until now. And the comment is correct, it does lift the high tessellation requirement. Furthermore, it reduces aliasing as well. I will post some pictures on the project website soon showing the new version of the algorithm. The water caustics in particular look very nice after the change.

If you are referring to my post, then I posted a similar comment as AP to your thread at gamedev to which you replied. Actually I was pretty surprized looking at the quality of the original method, I didn't expect that quality would be achieved with using only the mesh vertices! I'm interested in the new screenshots!
 
Hey krychek. Due to the large number of inquiries via email and forum posts, I am unable to keep track of who is who :oops: Anyway, I have posted a couple of new pictures on the project website. Please do check them out and let me know what you think.
 
The new ones look nice. Now it would nice to take into account the shadows cast onto the refracting object :D, so kill the point sprites in shadow or deal it in the fragment shader by zeroing their contribution to the caustics map. And then you could add textured lights or maybe that's taking things a bit too far!
 
RTFSS Project: Suposedly first implementation avaiable (binaries) of caustics mapping

Hi,

some days ago I have released RTFSS v1.1 (includes caustics mapping technique)

I think it's the first project avaiable (binaries and source code) that has a implementation of the caustics mapping..

I obtain with some simplifications (on the reciever geometry and caustic intensity estimation) high frame rates on today mid-range GPU (Geforce 6600GT) and the caustics quality is good (perhaps not as good as original implementation)..

smallscreenshoot122.jpg


View hi-res image:

Link.


RTFSS is a fast fluid simulator.. It also simulates viscoelastic materials and
shallow water eqs..

Using the last feature of the simulator I have implemented a "pool demo"
which recreates a pool filled with water..

For realistic rendering of water I have included raytraced refractions (with a more fast and exact technique that the described in the paper but constrained to boxes..) and caustics.. This two features a computed on
GPU and the caustics are made via caustics mapping technique..
It also features enviromental 3D audio with OpenAL..

It goes very fast at +70fps with a Geforce 6600GT with a 200x200 grid
for the water simulator and with caustics+raytraced refractions+reflections+fresnel all on GPU.

The binaries are compiled for SSE2 capable processors (Pentium4 or Athlon 64 or higher). I will publish soon binaries with no CPU requeriments (Pentium or higher).

Visit at http://rtfss.sourceforge.net.
 
Nice, those water waves are quite possibly the best I've seen in computer graphics. First time I've ever seen somebody simulate the dispersion equation of water.
 
ector said:
The effect, if he's doing what I think, is over a decade old. I made a 2D implementation in DOS when i was 14 :p

Here's an explanation:
http://www.gamedev.net/reference/programming/features/water/page2.asp
That water simulation looks incredibly simplistic. I doubt it's remotely as good as what's shown in Oscar's demo.

If I'm right, Oscar's demo actually makes use of a dispersion equation, which will lead to much more realistic waves than a simple implementation like the one you linked. Basically, a dispersion equation relates the speed of a wave to its wavelength. Different-frequency waves travel at different speeds in real media.

For water, this results in a rather interesting effect: the speed of each individual wave length is twice the speed of a disturbance. The visual effect of this is that as you see a disturbance move forward, you will see the waves that make up the disturbance quickly move from the back to the front of the disturbance. This demo appears to simulate this effect properly.
 
Back
Top