Skip to main content

History: SoC2012 Volume Rendering with LOD aimed at terrain

Preview of version: 19

Project Information

Proposal and discussion thread: http://www.ogre3d.org/forums/viewtopic.php?f=13&t=69449
Mercurial repository: https://bitbucket.org/philiplb/ogrevolumeterrain/

Roadmap

Some objects on the following roadmap are pessimistically estimated like the implementation of Marching Cubes, some of them can be extended like whatnot like the material stuff. So the actual implementation might move. This roadmap is updated whenever something changes of course.

  • Mai 21. - Mai 27.: GSoC start. Working on non ambigous Marching Cubes implementation.
  • Mai 28. - June 03.: Marching Cubes done
  • June 04. - June 10.: Working on LOD
  • June 11. - June 17.: Working on LOD
  • June 18. - June 24.: Working on LOD done
  • June 25. - July 01.: Revisiting the octree generation, research on Adaptive Distance Fields as split policy and / or QEFs again
  • July 02. - July 08.: New octree generation
  • July 09. - July 15.: New octree generation done
  • July 16. - July 22.: Extending the triplanar texturing to a simple material system with some fallbacks
  • July 23. - July 29.: Triplanar Texturing
  • July 30. - August 05.: Triplanar Texturing done
  • August 06. - August 12.: Move the actual volume rendering code to a plugin
  • August 13. - August 19.: Testing, refactoring, optimizing, documentating, buffer
  • August 20. - August 26.: Testing, refactoring, optimizing, documentating, buffer
  • August 27. - August 31.: Final GSoC touches and handing in

Weekly Progress

2012-04-29

  • Done so far: Some CSG VolumeSource, untested 3d texture VolumeSource, generating an Octree out of the volume with debug visualization
  • Forked Ogres Repo
  • Ported playground project from own application to an Ogre sample project
  • Adjusted all code to Ogres style guide
  • Wiki page created

Image

2012-05-06

More warmup and making a comfortable environment.

  • SDKTray TextBox, Main Sample class is registered as LogListener and fills it.
  • Checkbox for showing and hiding the octree.
  • Hotkey "h" hides/shows all UI elements, nice for screenshots.
  • Read the first half of "Effective C++" 3rd edition to brush up my C++ knowledge. Highly recommended book!

Image

2012-05-13

As the Summer of Code hasn't officially started yet and also my Thesis waits for some formal stuff, I tackled
mostly stuff which is nice but not super directly relevant to the LOD isosurfacing: Triplanar Texturing! And
some other small stuff. ๐Ÿ˜Š

  • Triplanar Texturing with a small test-mesh, implemented as CG shader.
  • Finished "Effective C++". Now that went into detail...
  • Began a DualCell class which currently just holds 8 corners and can add them to a manual object for debug visualization. Next step is to traverse the octree and generate the dual cell grid.

Image

2012-05-20

Slowly actually getting started.

  • Completed the CSG cube
  • Implemented the construction of the dual grid with a (switchable) debug visualization
  • Put a new roadmap in the Wiki

Image

2012-05-28

Working...

  • Added some first documentation.
  • Implemented a MeshBuilder to build up a mesh from triangles using vertices and indices without duplicating vertices.
  • Started with Marching Cubes.

2012-05-29

Because the previous entry had no screenshot. First working Marching Cubes! ๐Ÿ˜€
Image

2012-06-03

First closed gaps.

  • Added a checkbox to hide and show the actual mesh.
  • Using the cells of the DualGrid for Marching Cubes now.
  • Updated the roadmap as the Marching Cubes stuff was earlier done than expected.
  • Implemented Marching Squares to triangulate the open parts of the (future) chunks.

Image

2012-06-10

First rough LOD.

  • Finished the triangulation via Marching Squares for the open parts of the chunks.
  • Updated the roadmap, added the plugin point.
  • Changed the Octree grid split method to use some kind of geometric error.
  • Moved Mesh Generation to the class Chunk.
  • Finished a first LOD version with chunks and approximated pixel error.

Image

2012-06-17

Making things more usefull.

  • Made the TextureSource working with some real data coming from the editor Acropora.
  • Added the possibility (switched on per default) to use trilinear interpolation of the normal in TextureSource.
  • Some big loading time optimizations.
  • Added a CSGUnarySource as abstract parent class, CSGNegateSource is now a child class of it.
  • Added a CSGScaleSource (CSGUnarySource is the parent class) which scales the given Source. Good for scaling a TextureSource to the desired size.

Image

History

Information Version
Fri 31 of Aug, 2012 09:14 GMT-0000 philiplb 86
Fri 31 of Aug, 2012 09:14 GMT-0000 philiplb 85
Sun 26 of Aug, 2012 22:52 GMT-0000 philiplb 84
Sun 26 of Aug, 2012 21:23 GMT-0000 philiplb 83
Mon 20 of Aug, 2012 23:27 GMT-0000 philiplb 82
Mon 20 of Aug, 2012 21:57 GMT-0000 philiplb 81
Sun 19 of Aug, 2012 22:26 GMT-0000 philiplb 80
Sun 19 of Aug, 2012 22:25 GMT-0000 philiplb 79
Sun 12 of Aug, 2012 21:33 GMT-0000 philiplb 78
Sun 12 of Aug, 2012 21:05 GMT-0000 philiplb 77
Fri 10 of Aug, 2012 22:17 GMT-0000 philiplb 76
Thu 09 of Aug, 2012 14:14 GMT-0000 philiplb 75
Wed 08 of Aug, 2012 01:00 GMT-0000 philiplb 74
Wed 08 of Aug, 2012 00:45 GMT-0000 philiplb 73
Wed 08 of Aug, 2012 00:42 GMT-0000 philiplb 72
Wed 08 of Aug, 2012 00:38 GMT-0000 philiplb 71
Sun 05 of Aug, 2012 14:21 GMT-0000 philiplb 70
Sun 05 of Aug, 2012 14:20 GMT-0000 philiplb 69
Sun 29 of Jul, 2012 19:51 GMT-0000 philiplb 68
Sun 29 of Jul, 2012 19:50 GMT-0000 philiplb 67
Thu 26 of Jul, 2012 10:10 GMT-0000 philiplb 66
Mon 23 of Jul, 2012 20:12 GMT-0000 philiplb 65
Sun 22 of Jul, 2012 16:59 GMT-0000 philiplb 64
Sun 22 of Jul, 2012 16:55 GMT-0000 philiplb 63
Sun 22 of Jul, 2012 16:54 GMT-0000 philiplb 62