KnM 3D MORPHING Example

franz's picture

Hi folks, as discussed somewhere else on the forum, here's a practical example of Mesh Morphing using Kineme 3D Mesh Blender (GLSL accelerated).

Concept and modelling came from - Le Corbu Show - project, an attempt to virtually revive and interact with famous architect Le Corbusier. The original (undocumented) project used sensors and a playstation controller to dialogue with the dead architect, running on a PC under vvvv.

The modelling was done with 3D studio Max , using low-poly technique, then subdividing the mesh to smooth out polygons. Around 20 different morph targets were produced, and tested within the 3D software . Finally, the objects were triangulated before being exported to 3DS format.

The UVs were calculated in 3DMax by unwrapping the mesh topology, and the texture was hand painted in photoshop using the unwrapping pattern as a guide.

It is important to note that all meshes count the exact same number of vertices, faces and indices order.

I hope this will help someone here, and that KnM will continue to support and extend the Morphing patch. It allows more than it seems at first glance, especially in the field of "projection-mapping" (term popularised by recents CDM articles), where architectural-morphing does make a difference.


attached a .Zip file

Simply unstuff and place the 3DS folder on your root drive to avoid reconfiguring the objects paths.

PreviewAttachmentSize
HEADMORPH.zip2.12 MB

Scratchpole's picture
Top notch, thankyou. Didn't

Top notch, thankyou. Didn't know Le Corbusier was a gurning champion;)) What uses do you see for this within 'mapping' techniques?

gtoledo3's picture
Thanks for taking the time

Thanks for taking the time to wrap this up, I really appreciate it.

"Sweet FX" is indeed sweet. That is a heck of an observation/deduction that went into getting that skin tone, and it is really nice.

Again, thank you, I now understand how this patch works much better, especially after seeing how you are "working" the weighting on the patch... I should have just started digging into it now that I see this.

Really really really really cool.

cwright's picture
gotchas

Part of the reason why I've been vague about this patch is because it internally uses a GLSL vertex shader to perform the deformation quickly. Because of that, if you pop it in a GLSL shader, it'll override your Vertex Program, which will invariably cause people to cry :(

It also hard-codes some values into the fragment program (if one exists), which isn't exactly clean either :/

But other than the above, it is a pretty slick patch, if I may say so :) I remember playing with those meshes to get it up and running (and all the silly shrunken-head bugs in the first few tries :) good times, good times.

gtoledo3's picture
You knew the first thing I

You knew the first thing I was going to do was to pop it in a shader! Every time I asked about that I had that "intentionally vague" feeling about it :o)

toneburst's picture
Sweet FX

gtoledo3 wrote:
"Sweet FX" is indeed sweet. That is a heck of an observation/deduction that went into getting that skin tone, and it is really nice.

Agreed. I wonder whether it could be sweetened still further (or at least speeded-up) by replacing the Box Blur with one of vade's faster blurs. I'll give it a go tomorrow.

Nice work!

a|x

franz's picture
vade = good for framerate

i usually use vade's blur tools - which are amazingly faster-. However, for portability, i prefered not to rely on external patches other that Kineme. Sorry if the built-in blur has killed your framerate. ( i'm running a solid 30FPS, which is correct to me, on a GE.8600 MBP).

Note: this can be placed in a shader. I would recommend the Toon Shader from the developper folder, which works really fine. However, as Chris noted, it will override any vertex manipulation.

toneburst's picture
Framerate

The Box Blur didn't kill my framerate, actually, but I know what you mean about portability. I'm wondering if it's worth attempting to make a CIFilter version of vade's blur, for a 'native' solution that's faster than the builtin blur plugins. I did start working on a blur using a similar technique to the one vade uses a while back, as part of another project. It might be worth revisiting someday.

a|x

cwright's picture
side note

Dropping in a shader will recycle the fragment shader and attempt to use that at least. That's how one of my facebook profile pictures was generated: this + toon shader :)