Professional Services
Order outsourcing

Recreating Avatar's Neytiri Using ZBrush & Substance 3D Painter

Marcin Bania shared the workflow behind their Neytiri recreation, explained in detail how the eyes and braids were made, and showed the steps of creating the headpiece.


Hello! My name is Marcin Bania and I'm a 3D Character Artist working in the video game industry. I have been drawing since my childhood, only to pick up 3D art five years ago. This shift of medium embarked me on a journey that was both humbling and fulfilling. Today I make port here. 

Please, brew some tea and accompany me for a while as I will be revealing my workflow behind the recreation of Avatar's (2009) Neytiri in real-time 3D.

ZBrush SpotLight helped me to get base forms right.

The shape of the face, the size of the eyes and ears – it was all different depending on the shot I was looking at. I had to rely on my instincts and make a little bit of my own version of Neytiri. I spent a lot of time at this stage, constantly coming back to it and changing some small details. It started to drive me crazy to the point I didn't know what she looked like anymore. This is the final form.

Looking at it, I still have the urge to go back and change a lot of stuff. I guess I wasn't ready for perfection then but I was ready to do my best. Next time I will be better armed.

I used an 8k displacement map from Texturing XYZ and edited it in Substance 3D Painter

Then I created a couple of VDM skin brushes to add an extra layer of detailing.

This is the final high-resolution sculpt:

And after exporting the details as an 8k Normal map, I put it in Marmoset to get an early look.

The skin color also gave me many headaches. What is blue? In some movie shots Neytiri looked pale blue, in others she looked dark blue. We will never know her true color as most of it comes from post-processing, color grading, etc. Relevant, I guess. Anyway, I made her skin color RAW the same way as early movie footage is RAW.

Substance 3D Painter view

Marmoset preview with shader setup

To flesh out my RAW colors, I increased contrast, exposure, and a bit of saturation, then added grain. Those are the only post effects I had on my final renders, no further post-production. I used the classical 3-point lighting technique for my shots.

I see you

The captivating beauty of Neytiri comes mostly from her huge, expressive eyes. There was no room for error here. Eyes had to work. 

I wanted to make the whole eye by hand. Inside ZBrush, I started sculpting on a sphere with radial symmetry turned on. I used a lot of masking and extruding to create little fibers. After long hours, this is the result:

I baked this concave-shaped mesh onto my final eye which is a convex-shaped mesh. Here are those meshes side by side:

On top of this, I duplicated my low poly eye and scaled it up a bit, thus creating the cornea – a glass-like sphere that will be almost fully transparent and without roughness. The role of the cornea is to catch the environment lights. This is the effect after baking:

I painted all the textures in Substance 3D Painter. Cavity and AO maps were my good friends here but I painted a lot of the details by hand.

In order for the eyes to have depth, I set Normal input as Parallax and mask it with a height map (it is simply a black dot on a white background, it can be easily painted in any software of your choosing; it requires a lot of iterating to achieve best results though.) Here is the shader setup and comparison between the parallax normal and the regular one:

There is more to the eye than meets the eye. Let's take a look at how to blend it with an eyelid. We are going to need a transition/tear line mesh and a fake AO plane. Take a look at this comparison:

It adds vividness and life to the eyes. It is nothing more than a cylindrical shape modeled around the eye...

...and DynaMeshed in ZBrush. This will be used as our high poly for normal map baking.

After a quick retopo and normal map bake, we have our tear line/transition mesh. It will be almost fully transparent with reddish color added.

A fake AO plane is just a plane with a soft gradient transparency mask.

All my meshes combined

It takes a lot of iterating while creating eyes. Perfect results are not to be expected from the get-go. 

Let us break braid together 

Since the very idea of creating Neytiri planted itself in my head, I was trembling from the mere thought that I would have to deal with braids, a hairstyle I’d never done before. It had to be hair cards, period. I knew that inferior hair will destroy the entire model so it was hit or miss.  

It began with a lot of testing. I had to break it down into the most primitive forms. Nothing worked better than the Cacao fruit shape (UV unwrapped on my hair texture sheet).

While creating a hairstyle like this for games, one has to be wary of polycount swelling rapidly. My model was intended only for presentation purposes, so I allowed myself to add a lot of fuzz here and there. Here is the result in Marmoset Toolbag:

This simple shader setup is the one I ended up using in my final render.

After duplicating my cacao fruit, I used Maya bend tool to form my hairstyle. This is the moment in which one must work with precision and care. It takes time, as everything worthwhile should.

Here is the groom I ended up with:

As you can see, I used two texture sheets: one for the braids and the other for fuzz, small hair, and transition hair.

What's all the fuzz about?

The original Neytiri from the movie didn't appear to have peach fuzz on her face. I wanted to do it anyway, for it adds an extra layer of organicness to the model. The trick was to do it using only cards, like in video games.

I cut triangles in a polygonal plane with my small hair texture applied (the same I used in the braids hairstyle). Here are my little fuzz knights that will be spread across the face. I placed all of them by hand.

It is not as time-consuming as one might think. I used a clever method, which works in Maya.

Make the object, on which you'll be spawning fuzz, live surface. Set the pivot to the corner of the triangle. Ctrl + D to duplicate and hit the middle mouse button on a random place on the surface. The triangle should snap in the chosen spot.

Let this method not make you lazy. You still want to rotate the triangles in a specific direction to follow the right flow. The final result looks like this:

Use reference pictures and place peach fuzz with thought. Here is the untextured view:

Goggle it

When you're up in the air, flying banshee, you gotta protect your eyes from the winds blowing. Homemade goggles are the way to start:

It's a piece of leather with insect wings as glasses. I started by blocking out the shape on the face as if I was doing retopo.

I extruded the shape and handed it over to ZBrush. I used live Boolean to make holes for the ropes.

At some point, I duplicated this mesh to add a second layer of leather to further create the effect of sewing it with ropes. Modeling those ropes was the most difficult part, took me some time to finish it. No trickery here, just sincere hand-making.

Final high poly

Low poly version after retopo

The textures are nothing fancy, just brown all around.

I wanted to spice things up and add a few small hairs.

Now it's perfect.

Thank you for bearing with me, dear reader. I wish I could go more in-depth but sadly, I must draw the line here. I hope you found this breakdown useful. Please feel free to contact me If you have any questions about my workflow. I will offer aid to all that seek it. Stay safe and beautiful! 

Marcin Bania, 3D Character Artist

Interview conducted by Theodore McKenzie

Join discussion

Comments 1

  • Anonymous user



    Anonymous user

    ·a year ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more