Create Realistic 3D Portraits by Dan Roarty
Character artist Dan Roarty walks us through the process of creating one of his hyperrealistic 3D portraits, “Happy Birthday, Nana,” a tribute to his late grandmother. Creates his hyperrealistic 3D portraits with tools like Autodesk Maya, Autodesk Mudbox, Knald Technologies, and Adobe Photoshop.
Dan shows how he uses the sculpting tools in Mudbox and Maya to create the basic bust form and adds the layers upon layers of detail, texture, and tone with programs like Knald and Shave and a Haircut.
Finally, he lights the scene and composites the final render passes in Photoshop to create a realistic portrait that honors his grandmother’s memory. Dive in to find out how he does it.
Dan Roarty: It’s definitely become a little bit of an obsession to try to get something to be as photoreal as possible. And doing it by hand, not using scans or photographs, or anything like that. So I think it’ll probably continue to be an obsession until I get it to the point where no one can really tell the difference. My name is Dan Roarty and I am a Lead Character Artist at Crystal Dynamics.
Happy Birthday Nana is a project I did which is dedicated to my grandma. She was always a huge inspiration and being an artist herself definitely drove me to become an artist as well. So I tried to finish the piece roughly around the same time as, as her birthday would have been. So, it for me it was a, a nice way for kind of paying tribute, learning more techniques and stuff and doing something meaningful to me. I used a lot of photos of my grandma I wanted it to definitely be inspired by her.
I actually use the same head for most of the projects that I end up working on so I can start with a basic female head and then from here I really just start going in and sculpting. Some of the, the finer details looking at the reference of my grandma. This is where I’ll actually start to add all the, all the asymmetry to the face. In looking at the reference I can tell that this eye is just a little bit higher. I started off doing some basic renders. And then, as I’m startin’ to work on it, I’m startin’ to rough out more of the composition I want.
Startin’ to play more with the colors. Startin’ to get an idea of what her features would be, and how she’d be positioned. So, from here, I end up going into Maya, exporting out a base mesh of the head in Mudbox. For all the wrinkles, I used the basic sculpt brush and then I actually used the knife brush. I don’t use stamps for some of the larger wrinkles. Everything I’m doing is, basically, by hand. But then once I have the basic wrinkles, kind of set up here first, that’s when I’ll actually go in using some of the premade stamps and brushes and start putting in some of the surface details.
Then I’ll really just start layering this bit by bit. As I’m doing that I realize I don’t have any pores yet so I’ll use pore brush which is kind of nice for stamping and this is what’ll actually break up the skin when I start to render it. The next thing about using Mudbox for me is I tend to do my high res before I start doing any of my texturing. And with my high res there for moles or blemishes, I already know where they are on my high res. So the ability to actually paint on my high res enables me to have a 1:1 correlation between both the texture and the high res asset.
One thing I find kind of useful is when I’m creating skin, I’ll actually create three different layers of color that kind of gives it a more realistic feel. I’ll do a red pass, to again add a little bit of pigmentation. And I’ll bring down the opacity, usually set it as a soft light. I’ll do the same with a blue channel. This helps with making the skin look more realistic and it also helps to get a little more color variation in the actual skin. You want to have a nice base texture, and then start to add details in areas where you want to break up like the, the forehead and the moles and stuff.
I’ll paint in a little bit of eyeliner. Don’t want too much. Then I’ll create another layer where I’ll actually go in. And you might not notice these, but they’re fun to do. Just going in and adding the little bits of veins on her nose, I think, helps kind of sell some of the realism. So, for creating realistic skin, one thing I, I needed was a really solid reflection map, or spec map. Reflection’s a really important, aspect of making the skin look realistic. I’ve used other pieces of software in the past to to create it.
For this, I used, Knald, a program called Knald. The nice thing about Knald is it, it’ll take your normal map, or other maps that you bake. And it’ll give you really, really nice ambient occlusion maps or cavity maps. For me, this is a really quick way of getting a spec map and also getting all the details of the wrinkles that I can end up layering over top of my actual diffuse map. And once I’ve loaded in my normal, I actually have the ability to be able to see, live, how my occlusion map will actually be influenced.
What I’ll do is I’ll take both of these into Photoshop or Mudbox, and I can play with the color settings of them and actually layer them over the top of the skin to make the wrinkles look a little more realistic. So I’ve got my ambient occlusion map looking the way I want it to. The cavity map is essentially like an ambient occlusion map, but it’s a lot higher frequency detail. So any small wrinkles or blemishes, it’ll pick up on it right away. So I’ll bake it out of there, come back into Mudbox, and what I’ve actually done is I’ve layered both the ambient occlusion and the cavity map on top of one another.
And I’ve changed the color values to red and it lines up 100% with the actual wrinkles that I’ve created. One thing I want to be able to do is control the amount of reflection or specularity that the skin is going to receive and give off. So for this, I actually create a reflection map or a spec map, based off of the details that have baked out from both my normal map, and my cavity and my ambient occlusion map. And in Photoshop, I just come in here and I layer them bit by bit over top of one another.
And areas that I want to give off more reflection I’ll paint white. And areas that I want to give off less reflection I’ll paint dark or black. Anytime I am working on a new character, it’s easy enough for me to grab the eyes I’ve already created and change the color or, you know, the amount of reflection it gives off. I’ve created all the eyes in Maya just using literally three pieces of geometry. I have an outer shell that I use basically just for reflection, which is my lens, and then I have the iris and the pupil on the inside, it’s just a concaved version of the lens.
So when light hits it, it’ll actually nicely hit off the surface. So looking at the eyes right now they’re a little green, so I’ll actually go in and create a lighter version. But these should actually work okay. So one thing that I wanted, is I wanted her to have a nice cardigan. Looking at some reference I’ve started sculpting in basic wrinkles of how this’ll actually fit. So right here I’ve got my basic color that is just a flat image that I’ve tiled of the fabric I’m wanting for the actual shirt. And in using that texture I can actually bring it in as an actual displacement map.
So I just select the mesh I want to use. And using a grayscale version of the bump map, I can displace it right on top of the geometry. So now, with my shirt complete, her head complete, now, I’m going to start bringing in some of the final elements. For creating the hair, I go through a few different steps. I start off by bringing my low-res mesh of my head into Maya. From there, what I’ll do is I’ll actually extract what I would call, like, a hair cap where I want to extrude the hair splines from.
So for the hair I use Shave and a Haircut. In using this haircap, I’m going to go to the Shave and a Haircut tab, Create New Hair. I’ve actually created some of my own presets that I’ve made for past projects. But some of the standards work just as well. Now this is where I’ll actually look at some of the reference of what I want the actual hairstyle to be. My grandma had kind of shorter hair, which is fine, but I kind of want the hair to be a little bit longer. The basic style here is kind of what I’m going to try to match. This is a part that becomes really tedious, where you literally have to go in and adjust each spline.
Nice thing about Shave and a Haircut though is it has nice grooming brushes. So once I’ve got the hairstyle the way I want to, what I’m going to do is convert these splines to Maya hair. This enables me to use some of the V-Ray shaders. That are available in Maya. Once I’ve converted these to splines, I’ve actually got a couple of different layers of hair that I want to react differently than one another. And by doing that you actually have to create hair systems for each individual one.
So for this major set of hair, I want it to be fairly full. I’ll apply this hair system to it. And you can see, it starts to fill out a little bit. And for these other groups of hair. I want these to be the individual strands that you see. Give the hair feeling a little bit more messy. So I’ve created a hair system for that as well. And these are basically be one to one with the actual curves that I’ve created. The original hair system I created, it’s going to look at the individual splines and start creating hairs in between them. So you don’t have to worry about creating too many splines.
It’ll take out some of the guesswork for you. Now with that complete, what I’ve actually done is I’ve set up a really basic lighting setup that I know I’m going to use for my final scene. And then from here I can start doing test renders to see how the reflection of the hair will feel, how thick it is. And how it’s going to react to to the light. So, got a basic render of the hair then. This is a pretty quick way of being able to tell what it’s going to look like in the scene. I, what I’m actually able to do is create all my splines here, find out what the shader is going to look like make any adjustments I need to, to the actual haircut.
And, once I’m ready, I’ll import the actual splines and data that I’ve created for the hair systems. And I can plug it into, into my other scene. Using the same process I did for Nana’s hair, I did with her shirt and fuzz on her face. Same thing, I brought low res meshes of both obj, completed objects back into Maya. And from the lowerest cage, I didn’t extract anything. I just literally spawned hair splines from those low-res meshes. So here we’ve created new hair systems based off these pieces of geometry.
This is one of the only layers that I’m going to use later on in post afterwards. It seems like it’s a lot going on, but it, because I’m going to be using this as a screen, it gives ’em a little more of realistic-ness to the skin, like the little bits of fur, especially on the shirt and stuff, I can overlay this on top of my image. For the lighting for this scene I used and HDR I-image that you can get free off the Internet. And gave a nice kind of photorealistic feel to the overall image.
What I’ve done is I’ve set up a basic V-Ray dome light, and created some basic planes with white or off-white color. I’ve actually turned on global illumination. And when the render actually happens it’s going to reflect some of the color using those planes in the actual scene. If I was to increase the intensity, the intensity multiplier in the actual light, it would make her, her skin was looking a little more blown out. And some of the buttons and the balloons looked a little blown out as well.
So I created a plane that was much higher up. And what was nice about that is it’ll just reflect off her hair and some of her shoulders and and not so much of her face, because the hair that we have brought in will, will cast shadow. For indirect illumination or global illumination, I have GI turned on. So to help her feel little more grounded, for primary bounce I use brute force and secondaries like cash. It seems to be the norm for most of these render setups. The one thing I know is I had to, crank quite a bit was the adaptive under the image sampler.
We have a min and max value basically set here. And what I’ve found is the higher in both of them, obviously, the, the better revolu, resolution you’re getting in your, in your final render. I found that when I’ve started to render some of the hair, if you don’t have these cranked higher, then you get, you start to get some really pixelated results with the hair. So, I could have done a separate pass but I wanted to render everything kind of together. For all projects I render out on V-Ray I, I do tend to turn on all my render elements. To render out all the separate passes if I, if I need it.
For this specific shot it was good because I needed the z-depth pass that I did in V-Ray. I wanted to bring it into Photoshop and start copying some of those render elements that, that I rendered out separately. So now we’re in Photoshop, I have my Nana basically complete. Now, I’ve rendered her out. I’ve rendered out her different layers. Some elements I want to add in are the face fuzz and the shirt fuzz that I’ve rendered out separately as well. And then for these, what I’ve done is that I’ve gone in and using the screen blend mode in Photoshop, I can see areas that I, I don’t really want to show up.
So all I’m really doing is just painting, blacking those out. And using the opacity, I can kind of control how much of it I want to actually show in the final image. I want it to be apparent that she does have a little bit of fur on her face, but I don’t want it to be overpowering. For it to be photoreal it can’t be too dramatic. So, I’ve just adjusted a little bit here, you can see a little bit on her nose, her chin, and just a little bit on her forehead, and it kind of helps go nicely into some of the hair elements that she has there. For the shirt fuzz, same thing, we’re using a screen blend mode.
So I’ve got everything looking basically the way I want it to. But I don’t have the z-depth in there yet. What’s nice about the z-depth is, because I’ve rendered it in sixteen bit, I have the ability to play with the levels a little bit more to get it to what I want from my final image. Everything right now that is in focus is white. The darker areas in black will be out of focus, so that’ll give us a nice blurred effect. So, what I’ve done is I’ve created a flattened duplicated copy of my fur on top of the flat image I’ve rendered out of V-Ray.
And now i’m going to create a separate channel for me to be able to paste my actual z-depth map that I’ve made. The red are going to be areas that are going to be more out of focus and parts that are less red are going to be in focus. Which is, which is good. This is roughly what, what we want. I’m going to apply a lens blur, but it’s going to use the layered mask that I’ve just created for the z-depth. I tend to like adding a little bit of noise, it just, it gives it more of like a photographic type feel and for the source, I need to ensure that layered mask is selected.
And for the iris shape, I’m going to use the octagon. So, as you look at it, it shows that nothing has actually happened. It’s because the layer mask is still technically applied. So, all we need to do is just select the mask and it’ll ask if we want to delete it. Say delete. And then you’ll actually have now the new rendered image with the Z-depth showing. So now we have the background getting all blurred out was what we want. The face is in focus, and we have a little bit of a fall off now with the neck and some of her clothing. With that complete, I’ll do small adjustments for color corrections or blemish adjustments.
But that’s basically it. I can look at my art pieces and I’m definitely happy with them, happy that I’ve completed them but I’ll always look back on issues that I would totally fix or parts that I think don’t look as photoreal as other elements. And I think I’ll keep obsessing about it until I feel that I can’t push it any further. But right now I’m, I’m not there. If we can still look back and notice tons of flaws with all my work and I think I’ll still keep obsessing about it until I can finally say okay, that’s, that looks like a photo.
Dan Roarty’s Realistic 3D Portraits Start to Finish with Dan Roarty, How to model a realistic 3D character, Create Realistic 3D Portrait workflow by Dan Roarty, Create Realistic 3D Portrait workflow, How to Create Realistic 3D Portrait, how to create hyperrealistic 3D portraits, how to create hyperrealistic 3D models, Create Realistic 3D Portraits by Dan Roarty, Create Realistic 3D Portrait, hyperrealistic 3D portrait, Dan Roarty’s Realistic 3D Portraits Start to Finish, Dan Roarty creates his hyperrealistic 3D portraits, Creating a Realistic Portrait in Maya, Realistic 3D Portrait, how to create a 3d model, 3D Realistic Character Portraits, hyperrealistic 3D Models, Making of, CGI, 3d computer generated, 3d model, 3D modelling, 3d Modeling in Maya, 3d Modeling process in Maya, 3d Modeling Breakdown, 3d, Modeling, Rendering, Materials, Lighting, hyperrealistic Modeling