Autodesk Maya 2015 in Review
September 29, 2014 2:22 am
Autodesk Maya 2015 comes as part of the Autodesk Entertainment Creation Suite. The regular suite comes in two versions; One which contains Autodesk 3ds Max, and the other which contains Autodesk Maya. Both have all the other software like Autodesk Motionbuilder and Autodesk Mudbox and the little tools like Composite, etc. The hub application is your choice.
If you can't decide, you can go for the Ultimate Edition, which contains both 3ds Max and Maya. The Ultimate Edition also includes Softimage, which is being phased out.
I'm a long-time Maya guy and this is a Maya review. You can probably guess what we'll be talking about. Autodesk Maya. What is it? In their own words:
"Maya® 3D animation, modeling, simulation, rendering, and compositing software offers a comprehensive creative feature set on a highly extensible production platform. Maya provides high-end character and effects toolsets along with increased productivity for modeling, texturing, and shader creation tasks."
It's the "go-to" tool for almost everything and the central hub of countless production companies.
This year the Autodesk Maya 2015 edition has seen some major upgrades and enhancements. Chief among them we'll be taking a closer look at what I consider the top 3.
Bifröst is a fluid simulator. It's advantage over Fluid Effects is its performance and ease of use for certain types of effects. Splashes, surf on the beach, stuff like that are all trivial to achieve using Bifröst. It operates as a separate process outside of Maya, but is fully integrated. That is to say the actual computation occurs as a background process so Maya remains fully interactive while computing frames. Users can keep working on other aspects of the simulation while the fluid motion is calculated and scratch cached (first to memory, then the cache overflows to disk as the user specifies). As frames become computed, they turn green in the timeline when the Bifröst container is selected. (Frames can also be baked out to a traditional disk-cache and later reloaded.)
Bifröst fluids are variable resolution. One can start with a low resolution container that produces a more lumpy fluid but does so very quickly, you can later ramp up the resolution of the container for final renders as high as your workstation and your patience can tolerate.
Bifröst gives the user full control over not just the physics aspects of the simulation, but also over the artistic aspects as well, such as how easy is it for the liquid to separate into splashes. One can really go overboard here, it's totally up to the user.
In my personal experience playing around with it, Bifröst felt faster and easier to control than a traditional Fluid Effects simulation. It also made larger scale fluid effects possible, like surf on the beach. It was also nice that computing a simulation didn't bog down Maya. With Bifröst I could keep right on working. That said, Bifröst does not replace Maya Fluid Effects. It's just more useful for rapidly simulating splashing type liquids. Fluid Effects is still king for everything else.
Finally, Bifröst can also generate a polygon mesh of the fluid (the fluid's isosurface can also be rendered directly, but with less control). This means it's possible to shade and render it like any other surface using any shaders, combined with the renderer of your choosing. It's quite a flexible module, and given a sufficiently small voxel size, can produce some very convincing splashing type fluids.
Probably the best part of Bifröst is that it's pretty quick! Granted, it's fluid physics, so a decent simulation is going to be slow compared to most things, but among fluid simulators I was very happy with the performance. It's a very usable tool for even a single artist. Bifröst simulations were also very easy to control and came with sane default settings. Getting a halfway decent fluid simulation of the glass above took just a few clicks and less than about 5 minutes of simulation for 100 frames on a modest workstation. The lower resolution version was even faster. Definitely a big thumbs up for Bifröst.
XGen is an advanced geometry instancer that originated out of paper at SIGGRAPH 2003. It was picked up by Disney and used in several films. In circa 2011, Autodesk signed an exclusive agreement with Disney licensing the use of XGen. It now ships with Maya 2015 with the ability to do everything form forests to fur.
Basically, anytime you need a zillion copies of something along a polygon surface, you use XGen. And yes - your instances will indeed stick to the surface as it deforms. Common examples would include hair, grass, pebbles at the beach, a forest of trees, etc. However, XGen goes a step further than just native instances; It provides an extensive set of attributes, modifiers and expressions to control the exact placement and even animated behavior of your instances.
XGen basically calls your instances "Archives," in that they contain more than just the geometry. They can also contain shading networks and animation data. You can create an XGen "archive" from the current scene file via the XGen menu.
XGen gets very deep, very quick, but is still very easy to use. That is to say, it provides some very advanced capabilities. If coding is your thing, it even has its own expression language which provides the ability to get precise and complex behaviors from your instances.
The workflow in XGen is pretty easy. You select a polygon surface to populate with your instances. You then select XGen -> Create Description... which gives you this window:
Don't be fooled by the apparent simplicity. We're just getting started. We can open the XGen window via XGen -> Open the XGen Window. We can then add models to the Archive List. We can have one XGen node control any number of instances, i.e. "archives." For example, 10, or even 100 or more different variants of a rock for a beach shot:
We end up with a zillion things - or however many we want based on the Density attribute if they're randomly spaced, or the Spacing attribute if they're evenly spaced, or maps, or expressions, or... there's a lot of ways to control just about everything. Our "archives" can even contain some traditionally more tricky things, like subsurface scattering networks, vector displacements, etc. and it appears to work just fine.
These each have a vector displacement as created in Autodesk Mudbox applied which produces around 3 million polygons per mushroom. There's over a thousand mushrooms, so that's a cool 3 billion polygons in the rendered frame. No sweat.
That said, XGen can make Maya easy to accidently crash if you don't know what you're doing. It's easy to get carried away and quickly end up with a bazillion instances, so many that the redraw speed becomes unresponsive, depending on your GPU. Fortunately, this is simple to prevent.
There is a Percent attribute under the Preview tab that reduces the number of interactive instances drawn. We can still have a million things at rendertime, but we don't need to see them in the viewport all at once. XGen provides a lot of control to deal with a huge number of instances, both at rendertime, and in the interactive viewport. And yes - the instances do show up when using viewport 2.0. Rendering billions of polygons is a trivial thing with Xgen. Speaking of control...
There's a whole bunch of "behaviors" you can use to modify your instances. Things such as clumping, coiling, forces, control wires, noise, etc. When using XGen to create fur, there's even brush-based tools to comb the fur or modify other attributes using the brush-based toolset. We can have an entire stack of modifiers that alter the end result, including guide curves that we can modify using CVs and lattices, etc.
XGen is huge. It's not just a geometry instancer. It's like this whole new module, and like everything Autodesk Maya, they tend to go crazy with the number of ways one can tweak, control and modify something. It's like trying to explain all of Paint Effects or all of Fluid Effects in a single review article; It's simply impossible. I could write a book about just XGen. Suffice it to say, it's a very flexible, usable tool and is really, really cool to play with. Go crazy, make a billion or two!
The goal of XGen was to provide artists with easy access to the kind of tools that were previously only found among Technical Directors and programmers and I think they have succeeded. It's a very powerful tool!
The default polygon surface type when smoothing a mesh (either with a mesh smooth node or with the 2, 3 hotkeys) is now Pixar Catmull-Clark OpenSubdiv. This library takes advantage of massive GPU and CPU parallelism and can also display high density displacements interactively in the viewport with ease (assuming compatible hardware, i.e. OpenGL 4.0 compliant).
OpenSubdiv is pretty awesome any way you slice it.
Best of all, OpenSubdiv is super fast! Why should you care? Because you can now display your models with their displacement maps as generated in Autodesk Mudbox interactively in the Autodesk Maya viewport, or render them with Viewport 2.0 - sort of. Yeah, there's a few caveats we will get to in a moment.
OpenSubdiv is a great library; it's fast, it's accurate, it's a substantial improvement in performance over the Maya native subdivision method. It also makes it easer to render things, as it's trivial to specify a different rendering subdivision level than the interactive preview level. You can also specify the algorithm to use on a per-shape node basis, both in the interactive view when you press hotkeys 2, 3, and for the final rendering.
I remember the days of assigning Mentalray approximation nodes. I don't miss those days. OpenSubdiv makes things way easier.
This is convenient. Unfortunately, there's a couple thorns. Chief among them is: OpenSubdiv doesn't support vector displacement maps. Oh, the humanity! Also, OpenSubdiv only works with 8 or 16-bit per channel displacement maps. 32-bit per channel displacement previewing doesn't work. Sorry. (You'll also need support for at least OpenGL 4, which most of you probably already have. It came out in 2010.)
If you happen to be using 8 or 16-bit displacement maps - which obviously aren't vector displacements - it looks pretty cool and is tremendously useful! I hope to see vector displacements supported, or failing that, 32-bit displacements supported at some point in the future. Even so, it's still pretty awesome. Seeing a 16-bit displacement map on a surface or character equivalent of several million polygons as it deforms interactively in the viewport, or flying a cruise missile down a canyon with absolutely no slowdown is amazing.
There were a ton of awesome new features in a lot of areas, from basic bugfixes, enhancements to new toys. This review only covered a tiny fraction of them and so far they've all been pretty slick. Bifröst, XGen, Geodesic Voxel Binding, OpenSubdiv... (this could go on for pages) I've been using Maya since version 4.5 and it's come a long way. Autodesk Maya 2015 is indeed a major improvement over the previous generation and well worth looking into!
Readers can check out Autodesk Maya, including a free trial at the following links:
Kurt Foster (Modulok) falls somewhere between programmer and visual effects artist. When not sifting through technical manuals, he takes on freelance roles in both programming and visual effects, attempting to create a marriage of technical knowledge with artistic talent. He can be seen helping out on the Renderosity Maya forum, when time permits.
September 29, 2014
Please note: If you find the color of the text hard to read, please click on "Printer-friendly" and black text will appear on a white background.
Please take a moment to join Renderosity's Newsletter List to receive news and information from Renderosity!
Great points! I am currently struggling with Xgen trying to create a simple hairstyle. The only disadvantage when it comes to all the new features is that there is not much info about them out there yet except for the manual or a few tutorials so I kind of lack the option to ask a more experienced user for advice. After reading through the manual and everything I am still having a hard time getting my basic workflow for Xgen together. But I think it´s great anyways and I hope to figure it out : )