Create a new soy.meshes class which renders the surface of a liquid (ie, water) and it's depth through volumetric fog using GL_EXT_fog_coord, demonstrated with a small example script.
At minimum color and size properties should be available. A provided material should render as the surface with it's alpha blending properly.
Extensions should be tested using GLEW. Some OpenGL/GLEW functions and enums may need to be added to gl.pxd. Must render on i915, Xorg's free radeon/r200, and proprietary nVidia drivers (ie, no GLSL). Help is available on checking for extension support and testing on different video cards and drivers.
The source can be obtained through
svn co http://svn.pysoy.org/trunk/pysoy
Some inter-module API changes are permissible to implement this.
Completion:
Commit the work to http://svn.pysoy.org/, attach your diff(s) to this task, and contact the ghop-python mailing list.
Relevant webpages:
- http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=41
- http://www.cse.ohio-state.edu/~holewins/781/implementation.html
Task duration: please complete this task within 5 days (120 hours) of claiming it.
Comment #1
Posted on Jan 19, 2008 by Happy HorseI claim this task
Comment #2
Posted on Jan 19, 2008 by Happy Bear(No comment was entered for this change.)
Comment #3
Posted on Jan 19, 2008 by Happy HorseHere is the code:
And here is the screenshot of example code: http://img166.imageshack.us/my.php?image=asdlq5.png
- liquid.patch 22.06KB
Comment #4
Posted on Jan 19, 2008 by Happy OxCode implements the volumentric fog but not the surface texture, which due to alpha, must be rendered after the water contents.
Comment #5
Posted on Jan 19, 2008 by Happy HorseThe texture is wrapped now
Comment #6
Posted on Jan 22, 2008 by Happy Ox(No comment was entered for this change.)
Comment #7
Posted on Jan 23, 2008 by Happy HorseOk, I polished things a bit, and the code should satisfy everyone. That's definetly the hardest task I have tried in GHOP, pretty though this work was.
Here is how it looks like: (volumetric fog is calculated for all objects in the scene dynamically): http://img143.imageshack.us/my.php?image=liquidvc7.png
I cannot apply diff of my work, because of "Issue attachment storage quota exceeded.". Code is in the repository
Comment #8
Posted on Jan 23, 2008 by Happy OxThis is exceedingly impressive work. This task was specifically given because this student asked for a challenge.
Two prior SoC projects were to include this as part of the project, and neither finished.
Status: Completed
Labels:
pysoy
opengl
Due-20080124.1300
ClaimedBy-dev.jrx