2 ms·
I worked on the XNA Xenomorph Demo that was part of the announcement of the Xbox360 https://youtube.com/watch?v=VM94d3Alt3M https://youtube.com/watch?v=VM94d3Al
by corysama 2y ago
I worked on the XNA Xenomorph Demo that was part of the announcement of the Xbox360 https://youtube.com/watch?v=VM94d3Alt3M https://youtube.com/watch?v=VM94d3Alt3M
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.