Sunday, 3 November 2013

C++ - Maya API - Deformers and Worms?

It's been far too long since my last post. Far far too long!

It makes writing this post all the more difficult as it is impossible to cover everything that I have done these past few months.

For those of you that can remember reading about my custom displacement deformer plugin for Maya (it was my last post actually - here), you may recall that it was written in Python, and I said that one day I would have a go at writing it in C++.
Well, I did just that!

Just to fill everyone in on what I'm talking about, I created a custom deformer for Maya, which displaces geometry based on textures. It works like an ordinary displacement map, only instead of applying the effect at render time, it instead applies the effect directly to the mesh as a deformation.

The Python version ran too slow to be of any real use (certainly for detailed animation), whereas the c++ version can handle very dense meshes and still gives near real-time performance.

As an added extra, I also implemented a colour per vertex feature, which gives colour feedback on the displacement effect. Blue represents negative displacement, while red is positive.

Take a look at this video.

Texturing has never been my strongest suit, which is why I am pleased with the next thing I have to show.
I'm sure some of you will have heard of the Steam Workshop, so when a new Worms game was released with Steam Workshop support, I couldn't resist creating some custom items for the game.
You can create hats/masks, gravestones and random items for your worms to hold onto.

They're all Doctor Who themed... what a surprise!

The TARDIS gravestone

It's just made up of a few cubes and extrusions. The challenge with this asset is that the TARDIS is a very detailed object, and the texture map size is limited to 256 by 256! Somehow the UV space had to accommodate for all this detail at such a small resolution.

Simple things like overlapping the UVs and prioritising certain details (like the 'police public call box' text), I was able to pack all that detail in.

In the end, the texturing probably has greater influence over the quality of a model than the model itself.

Here's the rest of them.

The Sonic Screwdriver

Gas Mask Zombie

A Fez

The 4th Doctor's Hat (Tom Baker)

Go check out my Steam Workshop page - here.

I could go on talking about the many other Python / rigging related things I've been doing, but I think that is enough for one post.

Ethan Shilling

No comments:

Post a Comment