Sign in to follow this  
Geometrian

OpenGL Water

Recommended Posts

Hi, So, I'm representing (ocean) water as a plane, with per-pixel lighting via normalmap. This normal also is used to perturb a simple reflection constructed with an inverse transform. My problem is that there is also land in the scene. I want the interaction between land and water to not be terribly unrealistic, and also not terribly slow. I had the idea of making the water closer to land more transparent, and then darkening the landscape below water. I was wondering if instead it would be somehow possible to render fog only below the water's surface? This would be a much better approach. I've basically never used OpenGL fog before, so I'm wondering if this would even be possible. Ideas? Thanks, -G

Share this post


Link to post
Share on other sites
You should look at a fresnel effect to moderate the translucency based on viewing angle - that's always a big win and is a couple of extra shader lines.

If you want to do the transparency thinning out with depth, then you can read a depth map easily if you're using a shadowmapping technique already - the floor will be in it but not the water, so you can do a rudimentary calculation right there. Of course the angle's off, but if you don't have a "Navy SEAL Cam" then it'd probably be good enough.

Share this post


Link to post
Share on other sites
Quote:
You should look at a fresnel effect to moderate the translucency based on viewing angle - that's always a big win and is a couple of extra shader lines.
Actually sounds like a fairly good idea. I had thought of this, but I wasn't going to do it. Now that I think about it a bit more, this could look great with the normalmap also affecting transparency.
Quote:
If you want to do the transparency thinning out with depth, then you can read a depth map easily if you're using a shadowmapping technique already - the floor will be in it but not the water, so you can do a rudimentary calculation right there. Of course the angle's off, but if you don't have a "Navy SEAL Cam" then it'd probably be good enough.
Actually, I'm not doing shadowmapping yet (and not on the whole landscape at the same time) but the land is rendered via heightmap. This was actually my previous approach, as I meant with:
Quote:
darkening the landscape below water
I actually colored the landscape below the water to the water's average color. This didn't, unfortunately, have the desired effect.

Fog can't be specified for certain areas in an OpenGL scene?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this