Thursday, August 09, 2007

Vertex Projected Reflections

A new implementation was required in order to achieve better looking software water. It is slightly more complicated, a little more CPU expensive but I feel the results are allot more appealing and worth it. No hardware acceleration was used so this should hopefully work on any computer.

The differences are:

Previous
  • Invert the scene so that it is upside down
  • Setup the clipping plane so that only vertices above the water (those that will be reflected) are drawn
  • Draw the scene
  • Disable the clipping plane
  • Render scene as normal

Now

  • Invert the scene so that it is upside down
  • Setup the clipping plane so that only vertices above the water (those that will be reflected) are drawn
  • Render the scene to a texture to be used when rendering the water
  • Project each of the water vertices to screen coordinates. Set these values as water texture coordinates
  • Render scene as normal


Further optimizations are to be added for the water. Use a terrain approach to render the water by splitting it into patches and rendering with a level of detail therefore reducing the polygons drawn in the distance. As well as reducing the number of polygons rendered I should be able equally cut the number of water vertices updated and projected to screen.



I have just looked through this blog and feel a little dubious about it. I guess the first question is does anyone read it? If so can you let me know. I am going to update it as often as required regardless because it is a nice timeline of the Decade Engine for me, however if people read it and would like to learn something from it please let me know. I can start to make the posts more technical with sample source, comparisons etc... In essence start to build up a 3D engine tutorial.

4 comments:

  1. I read it :D. Well, if I have internets at home again...

    ReplyDelete
  2. I read it, very informative. I would really be grateful if you did make some form of technical source post or a tutorial on how to build a 3D Engine, I've already had some great ideas of inspiration based on what you have shown.

    Jamie

    ReplyDelete
  3. I read it, too.
    Very informative and good blog. Keep it up!
    However, as I'm doing a blog myself for a home-made gameengine like yours, I'm interested in lerning new techniques and solutions. My engine isn't as developed as yours, though.

    ReplyDelete