Let’s say that you have spent hours working on a single model for a 3D animation. It looks great at all angles and rigs in a way to keyframe in ease. However, if you want to put a material on that model and give it a skin, that is a whole feat in of itself.
To give the animation a detailed color would require first doing a retopology of the model, making sure the flow of the polygons is correct for rigging animations, and then unwrapping all the UVs so that the material can be presented appropriately.
But what if I told you, you can skip that and go for a stylized look?
NPR, or Non PhotoRealistic, is a great approach to give your animation a stylized look without having to spend hours rendering a project or reworking your models. You can give the aesthetics of a comic book, cell-shaded toons, or even a sketchpad.
With my workflow, I like to dedicate a whole screen for my shading nodes so that I can assemble the puzzle with plenty of space because that’s all that shader nodes are, just a large puzzle of logic. On my other monitor is my camera pointing to my scene with the attached material since this can be rendered in real-time. My goal is to give it a dollar bill aesthetic, so I plan out what I need to accomplish to achieve this look.
- Unsaturated Colors
- Crosshatched shading
- Uneven Texture, due to bills being crumpled.
- An Outline, to make sure my models pop out.
First, let’s get the base of the shader going. I want the material to be read from a single light source. Next, I place the Black and Whites in a spread where I want. Messing with the shadows was done with a Color Ramp Node. I went with a higher contrast look to it to allow the cross-hatching to stay subtle in the deep shadows later.
Next, since I know my data is reading in Blacks and Whites, I plug my nodes data to say that over the blacks to use a texture image. This way areas of gray are fading away cross-hatching, while black is concentrated cross-hatching.
We have the data acting appropriately, so we can now overlay a color over everything. I merely am just mixing shaders now instead of adding to it. I added color using another Color Ramp Node and the values is just being laid on top of the shading.
It’s getting there, but now we need a way to make the model pop from the background. That’s where an outline is added by giving the model a solidify modifier, or a shell in a way. We then flip the normals, or the faces of the polygons, and tell the data that the back of the faces should have a certain color and Boom! We have a real-time outline! If your model is heavily detailed like mine was, it would be a better approach to go with layer weights instead.
Take it one step at a time, that way when something goes wrong, you know exactly where to look. Organization is key! Keeping all your nodes in frames and a general outcome of each one as a label really helps when you are troubleshooting or even experimenting. And just as a little peek under the hood, here is how I have my nodes organized!
Now we have a model that is stylized and is able to be viewed in real-time. Even better, each modeled frame is under a second, which really saves time when you are hitting a deadline!