3D Graphics

More realtime test renders

Since I’ve been putting MSpro through it’s paces today, I decided to see how it did with a larger data set. So I fed it a reasonably large model of Manhattan. Mach Studio did great, export/import was fast, the machine was responsive, and even hitting it with realtime ambient occlusion, shadows and depth of field didn’t get the scene to a point where it chugged. Rendering this scene with similar settings in Mental Ray would have meant significant time per frame, certainly enough to preclude much in the way of any kind of immediate feedback. MSpro was fine onscreen and rendering 5k resolution images with settings turned up relatively high resulted in render times still under a half second a frame.


Not high art, but we’re talking test images people. I rather enjoy the simcity look of the orthographic one…Hey it looks like I nudged the ground mesh in one of those images. That would be a serious drag with a traditional render process, you’d have to submit it to the farm again. Realtime, it’s no big deal. Of course, there’s a lot of room for improvements on these images… the majority are not issues with the renderer but the artist (errr, me) who for some reason didn’t want to spend all night obsessing over test images. You can speed up render times, but there’s still tweaking galore. But at least you can tweak interactively.

Testing Mach Studio

Here’s the result of 1/2 hour (probably less) fiddling around with Mach Studio Pro and  Photoshop to try to see how fast I could produce an acceptable concept image.

I exported the buildings from Maya which took a few minutes, slapped on some materials, threw in an environment light and a spot light. Rendered a frame (which took 0.13 seconds to render) and took it into photoshop where again I just threw some elements together – a sketch filter blended with the CG, some vignetting and color manipulation. It’s not going to win any awards but that’s not the point… I was able to get this image out from start to finish incredibly fast, and that’s despite my being a novice with MSpro.  Very promising…

Gorillaz and Miku. Who can’t resist a cg character performing onstage? Not these people. I dig the leek-shaped lightsticks. (For the impatient, Miku makes her stage appearance at about 5:25 in this video.)

The mocap performance is nice I guess but what really interests me about Hatsyune Miko is that her voice is synthesized, not recorded. Would have been cooler if she was puppeteer-ed in real time ala Henson’s creature shop…

Update – no video available anymore, it was removed from youtube. Bah.

XSI toon shader

Did some more work on a basic realtime toon shader for XSI (and maya, it’s CGFX.) Here’s a sample…

Me. Me me me. Me too.
It's Agent Smith(s), toon style.

Functionality is pretty basic at the moment: Ink threshold, 2 levels of paint and a hard spec hilight, overall color control, a single point light source. I still need to introduce diffusion and spec mapping, possibly some reflections and bump/normal. Remember, if you see an agent, run.

CGFX shaders

I’ve been playing around with CGFX realtime shaders and mental mill. Here are some basic first shaders. Mental mill makes creating this kind of stuff pretty fast, and you can edit the generated code by hand once you’re in the ballpark.

A simple realtime toon shader for XSI and Maya viewports.

Mach Studio Pro

I have been testing Mach Studio Pro for PLF for a while now, and while it’s a very new tool I am pretty pleased with it’s capabilities and potential. MSpro is an application which accepts scenes from most 3d packages (including Max, Maya, XSI, sketchup etc) and enables the artist to shade/light/render in realtime. Quality is high, with renders being competitive (and sometimes mistaken for) mental ray/vray etc in many cases. Being a realtime application there are caveats and limitations of course, for instance raytracing is not (yet) supported, nor are true radiosity/GI effects. Fair enough. And you’ll still need to render out vFX passes like particles and volumetrics in another app.

But most CG isn’t about all that – it’s about the basics and that’s where MSpro shines: on the 90% of the work you render which you can now do so in seconds rather than hours. It’s very liberating being able to light shots with immediate visual feedback, and MSpro was written with a fair eye towards being a production-friendly application with python scripting, linear lighting and HDRI workflow, output to open EXR as pass breakdowns etc.

This is clearly the direction the industry is moving and Mach Studio is not without competitors, but as a just-out-of-the-gate package they are off to a great start. And don’t get me wrong, MSpro isn’t just about the bare minimums… realtime microtesselated displacement maps aren’t basic, and realtime AO and SSS go a long way towards giving you the tools you need to create great imagery. In real time. No more waiting on farms. No more unpleasant surprises a day lat

Oops and Upcoming

An earlier version of the “Emit instances matched to SRT” compound had a bug which caused two instances to be emitted per object. My bad! the 1.2 version fixes this (all downloads from this site are now bug-free). Thanks to Lawrence Pankhurst for spotting it and letting me know.

Also a number of users have been startled when they use the compound in a simulated tree and see a continuous emission of instances. This is normal behavior – if you want a single copy of each instance master use the compound in a non-simulated tree to generate each instance. You can them simulate them in a second simulated ICE tree.

I’m currently out of the US and have varying connectivity as a result of travel until mid-September, after then I hope to release some more tools and compounds including the “self shadowing” compound many people have contacted me about on vimeo. Thanks to everyone for the interest and enthusiasim they’ve shown, I really appreciate it. – AM

Fragmenting objects for animation in ICE

Currently ICE has no provisions for creating or destroying faces or edges, which means we can’t create compounds directly in ice which for instance shatter objects. So what do you do if you need a “blastcode” type destruction effect in XSI? One solution is to approach the problem with XSI’s rigid bodies, but they have their own issues and it’s frustrating not to be able to leverage some of ICE’s power for this kind of thing.

The good news is that if you can create fragments outside of ICE you can use ICE instancing to go from pre-fragmented instance masters to ICE particles. For instance, build a brick wall out of individual bricks, instance them in ICE with the same SRTs, and do a rigid body simulation in ICE. Or in the examples below, use ICE to animate geometry fragments or polygons.


To achieve these effects I’ve written a script which extracts selected polys from a model and groups them as needed, and a compound which seamlessly takes a group of instance masters and creates identically placed ICE instances ready for simulation.

Emit SRT matched instances

Test Images – Game Cinematic

A recent project caused me to explore XSI’s capabilities in the area of destruction by simulating a vehicle crash. The project was a lot of fun and I was working with a great crew, and this kind of effect is the sort of thing I love doing. I used ICE and RBDs primarily, unfortunately there wasn’t time for me to get into ICE deforms to the extent of creating travelling shock deformations similar to houdini cloth gags… but the effect came out well all the same. Here are some early test images where I was pushing ICE instancing to see how much ‘junk’ I could deal with and still have decent interaction. The answer? A whole lot more than I needed, with tens of thousands of instances simulated without my machine doing more than chug on occasion. Wow!

Car crash effect in ICE
Car crash effect in ICE