Jump to content
  • Advertisement
Sign in to follow this  
robotichrist

OpenGL What features do you want in a procedural mesh library?

This topic is 2526 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi everyone!

In my spare time, I've started working on a C++0x library for triangulated meshes built on top of the wonderful Eigen library: http://eigen.tuxfami...itle=Main_Page. It is in the *very* early stages right now, but it already has a few nifty/useful features including:

  • Templated data structures and algorithms for custom vertex formats
  • O(1) topological operations (neighborhood queries, Euler operators, vertex/face insertion/deletion)
  • Flat array based memory layout for direct OpenGL/DirectX interoperability (no copy/traversal needed)
  • PLY serialization (with more file types to come later)
  • Multiple algorithms including:
  • Isosurface extraction
  • Connected components labeling
  • Mesh repair
    The ultimate goal is to create a replacement for the trimesh library which brings in some of the features from trimesh2, (hopefully with less cruft and better performance by exploiting some of the new features in C++0x), and adds in some new features focused on solid modeling (ie CSG, point membership tests, etc.). Right now I am working on adding some code to use BSP trees to do point membership classification, interference testing and surface trimming. If things go well, it could eventually turn into something like a light weight drop-in CAD kernel that can be easily embedded into existing C++ applications. Here is a list of planned features:

    • Solid modeling operations (CSG, point membership, Minkowski sums, etc.)
    • Subdivision surfaces
    • Mesh simplification
    • ...?
      My main focus right now is on developing tools that are useful for procedural generation and mesh analysis. While it is true that the sheer complexity of doing even very simple solid modeling tasks (for example, checking point membersip) with meshes tends to scare people away from using them for solid modeling tasks, there are still plenty of good technical reasons to prefer meshes over more naive volumetric representations (ie regular voxel grids or CSG trees). Meshes are of course much easier to render, they also take up a fraction of the space of octrees/voxel grids and do not suffer from aliasing due to undersampling. Moreover, many useful tasks, like CSG, are much faster on meshes (though they are also way more complicated). Hopefully, by making a convenient library this last point can be addressed as well!

      In case anyone wants to check it out or try contributing to the code, here is the github repository:

      https://github.com/m...senko/TriMesh0x

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!