Jump to content

  • Log In with Google      Sign In   
  • Create Account


Projected grid water using a sphere instead of a plane?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
1 reply to this topic

#1 magicstix   Members   -  Reputation: 191

Like
0Likes
Like

Posted 24 November 2012 - 11:12 PM

Does anyone know of any papers/blogs/whatever out there that discuss doing the projected-grid water approach with a sphere instead of a plane?

I'm using lat/long/altitude coordinates projected onto an ellipsoid for my terrain, and I have concerns that at high altitudes, the water horizon won't bend with the terrain horizon.

I assume this would involve line-sphere intersection tests instead of the line-plane tests in the projected-grid approach, but I don't really have any idea how to go about creating the screen-space grid so that it properly follows the curvature of the horizon...

Sponsor:

#2 Vilem Otte   Crossbones+   -  Reputation: 1400

Like
0Likes
Like

Posted 25 November 2012 - 05:15 AM

Basically why you need paper, projected grid approaches are really simple thing. Just generate rays from your camera, test them against plane, sphere, ... and compute vertex locations for your grid*. For avoiding seams at screen edges, you basically use (for ray generation) camera with a little more fov, that your actual camera.

And because vertices you get are a grid, computing indices for drawing is very simple (same as indices for rendering quad-based uniform grid). Texture coordinates (this also counts for normals and tangent vectors) can be computed from vertex position (because you know it's a simple plane or sphere).

Then you just need some awesome FFT for displacement, good vertex & fragment shaders (maybe even tessellation one) and some render perfect water. Posted Image

*Note for sphere you get 2 solutions, if you are above water surface, pick the closer one, if you're under water surface, pick the further one (basically it will be non-negative one).

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS