Powerful 3D Painting: The Foundry's Mari in Review
Sergio Rosa [nemirc] - Sr Staff Writer
Mari is a digital 3D painting program from The Foundry, designed to help users create textures for 3D objects. If you have used software applications like Mudbox or Bodypaint, you should find yourself at home when using Mari. However, there are some things in Mari that work differently, so that’s something to keep in mind.
When you start working on a model in Mari, you create a project, importing a 3D model, and generating the channels you want to paint (diffuse, specular, etc.). Once the model is imported, you simply select the channel you want to paint on, and use the corresponding painting tool, depending on your needs.
While channels in Mari are actual shader channels, as I mentioned, you can use channels as layers, create as many channels as you want, and use them as layers like you would in Photoshop (or even in similar programs like Bodypaint or Mudbox).
Painting tools in Mari are what you’d expect. You have color paint, clone, stencil tools, blur tool, and so on. Many tools have different behaviors in Mari, but the software offers great tooltips in the viewport so you know how each tool is used. As you become familiar with the software, you can hide those tooltips, since they can get in the way when you’re working on your model. Painting tools in Mari behave differently than tools in other painting applications. You can set them to paint directly on the object, meaning that the paint “sticks” to the object surface as you paint (this is what you'd expect from programs like Mudbox), but you also have the option to paint on what Mari calls a “paint buffer.” Basically, Mari’s paint buffer is similar to an invisible, flat canvas on top of the model. The paint remains “floating” on this invisible canvas, and you can then move the model around freely, and adjust how the paint will be projected onto the surface. When you are happy with the result, you can “bake” the paint buffer onto the surface. Mari also features paint buffer symmetry, so you can paint on both sides of a symmetrical model at the same time, which is extremely useful.
While painting directly on the object offers an amazing workflow, Mari also allows you to paint on a 2D UV projection of your model. This can be very useful when you need to fill the entire model with a single color, but also when you want to paint a specific part using the convenience of 2D painting.
If you use Ptex for your workflow, you should know that Mari supports that painting format as well. For those not familiar with Ptex, it’s basically a “UV-less” painting workflow designed to work on models that have no UVs, meaning you don’t need to worry about UVmapping your models before painting on them. However, this means your 3D software package should support this type of textures.
Mari is, most of the time, very intuitive. Paint tools and the interface in general are very easy to pick up. Viewport navigation in Mari can be configured to match navigation in Houdini, Lightwave, Maya or Nuke (as well as the default Mari navigation scheme). As a Maya user, I found this very convenient, since I always configure all 3D software packages to behave like Maya (for example, I set the Softimage interaction method to Maya).
On the other hand, Mari can make some things more complicated than they should be. I mentioned earlier that you can use channels in Mari to work with paint layers. The problem is, by default only the active channel is visible when you’re painting, and everything below that channel will be hidden (this happens even if your current channel has alpha). You can manually set up your object’s shader so that all channels are visible at all times, by adding extra channels to your shader (for example, extra diffuse channels, corresponding to each of the paintable channels). To me, these extra steps can make things complicated, considering adding extra paintable layers to Mudbox or Bodypaint projects is as easy as clicking a button.
If you set the painting tools to auto-bake the buffer, you will notice a short delay when you try to move your camera after you have painted some strokes on your character. You can, however, press the “b” key to bake the buffer after you paint your strokes, and that makes things a lot smoother when working with Mari.
Unlike other applications, Mari does not store painted textures as separate objects in your project’s folder, so you can’t simply copy the texture and use it on your model. Once you’ve finished texturing, you can merge all your channels into a single channel, and then export that channel as a texture file. Mari supports a variety of image formats, so textures can be used in virtually any 3D application.
Mari is a very powerful 3D painting software. Once you find the best balance between painting and baking, things can become very fast, and I’m happy that I never got any painting artifacts while using it (sometimes I get texture artifacts in Mudbox, especially related to areas that are not being painted). On the other hand, it can complicate things that, in reality, should be very easy (like using layers). Like Mudbox, Mari is meant for high-resolution texture painting for film and such (although Mari is more optimized for really high resolution textures), so if this is your area of work, you should give Mari a try. I’d feel inclined to say Mari is overkill for other digital content creation areas, like game development or video, but it’s up to you to decide if Mari would be the right tool for the job, considering both features and price.
For more information, please visit:
Sergio Aris Rosa [nemirc], is Sr. Staff Writer for the Renderosity Front Page News. Sergio discusses on computer graphics software, animation techniques, and technology. He also hosts interviews with professionals in the animation and cinematography fields. You can follow him on Twitter, and if you want to see what he's up to you can visit his blog.
December 3, 2012
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.