I wonder what percentage of 3D meshes used in practice (say in video games, visual simulations, etc..) are topologically equivalent to a sphere. No coffee cups allowed.
A trick used to achieve the morphing is that all of the creatures are topologically spheres ;)
The main trick is that their triangle topologies are all identical. We projected a common mesh onto each hand-modeled mesh so there would be a direct correspondence between each vertex of all of the projected meshes. The common mesh was topologically a sphere, but was pre-shaped to be more like a balloon animal with 6 legs and a tail (the union of all models’ appendages).
With the 1:1 vertex relationship set up, we animated 1 vertex from each of two meshes at a time separately in the vertex shader. Then the shader did a simple linear interpolation of the results. Similarly, we had a fragment shader for each pair of materials that just evaluated both and blended the results.
From there, a bit of special handling of fur and other details and we could morph between creatures with apparently different shapes, skeletal structures, materials and rendering features in real time.
CarpeQueso 4 days ago [-]
There are probably lots of weird shapes used in practice, but the nice thing about game design is that you get to build the mesh directly instead of making your best guess at what kind of surface unconnected points ought to represent. Mapping to a sphere is definitely pretty restrictive.
gcr 4 days ago [-]
I'd imagine most are either planar or complex/undefined. Most meshes in gamedev probably aren't even closed with a unique inside/outside; just "pile of triangles".
genewitch 4 days ago [-]
If this aids your argument, nearly All video game models that I tried to convert to 3D printing STL files were non-manifold.
I think this logically follows from your statement, and it made fixing the stl files necessary otherwise the printer would switch to imaginary coordinates halfway thru the print and since the printer is mechanically restricted the print does a good impression of an Escher painting.
Rendered at 02:40:41 GMT+0000 (Coordinated Universal Time) with Vercel.
A trick used to achieve the morphing is that all of the creatures are topologically spheres ;)
The main trick is that their triangle topologies are all identical. We projected a common mesh onto each hand-modeled mesh so there would be a direct correspondence between each vertex of all of the projected meshes. The common mesh was topologically a sphere, but was pre-shaped to be more like a balloon animal with 6 legs and a tail (the union of all models’ appendages).
With the 1:1 vertex relationship set up, we animated 1 vertex from each of two meshes at a time separately in the vertex shader. Then the shader did a simple linear interpolation of the results. Similarly, we had a fragment shader for each pair of materials that just evaluated both and blended the results.
From there, a bit of special handling of fur and other details and we could morph between creatures with apparently different shapes, skeletal structures, materials and rendering features in real time.
I think this logically follows from your statement, and it made fixing the stl files necessary otherwise the printer would switch to imaginary coordinates halfway thru the print and since the printer is mechanically restricted the print does a good impression of an Escher painting.