Powerful 3D Painting: The Foundry's Mari in Review

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.