datavis

meow 2015-12-23T14:02:18.000771Z

@kephale: I'm researching various data structures for meshes. There are tradeoffs to each. Thinking about supporting several and making it easy to pick and choose the style of representation that one wants. Since a mesh is usually an immutable structure I could see the benefit to being able to switch data structures midstream.

meow 2015-12-23T14:03:27.000772Z

For example, right now I'm creating a mesh by starting with a seed platonic solid to which I apply various operators until, in the end, I have a fully triangulated mesh that gets output to an X3D file.

meow 2015-12-23T14:05:34.000773Z

Along the way I'm controlling these mesh operators using parameters like the number of edges of a face. So at that point in the process I need a data structure that allows a face to be more than just a triangle, and I need to be able to access various properties of a face.

meow 2015-12-23T14:07:19.000774Z

When I get towards the end of the process I start using operators than only work on triangles. So when that happens it makes sense to start creating those meshes using a data structure optimized for triangles.

meow 2015-12-23T14:09:15.000775Z

It's the same mesh, and yet it isn't since really the process is such that at every step a new mesh is getting created based on the previous mesh. So at any point the next iteration of the mesh could use a different data structure, different underlying matrix library, whatever.

meow 2015-12-23T14:11:23.000776Z

Not sure if that applies to the type of mesh deformations you apply in your simulations.

meow 2015-12-23T14:15:03.000777Z

There could also be the idea of having one data representation for the core mesh data that get operated on, and a different representation (fully triangulated, for example) that is used for rendering purposes only. And then mapping from the core mesh to the display mesh in realtime.

meow 2015-12-23T14:15:41.000778Z

I think that's how some video games are rendered.

meow 2015-12-23T14:17:06.000779Z

Where smoothing algorithms like catmull-clark are applied on-the-fly to a simpler/rougher underlying mesh.