An example of the stylized effect that can be achieved with this tutorial using the Toon and clip_geo shaders in Arnold
This tutorial will cover how to create an interesting image that could be used for an advertising campaign or as part of a motion graphics animation. We will cover how to prepare and shade the geometry using the toon shader. We will also cover how to export geometry as an Arnold Scene Source (.ass) file that can be used as a procedural so that we can keep our scene light and responsive. We will then instance those procedurals and use the clip_geo shader to create a cool stylized effect. More examples of this effect can be found here.
In this tutorial, we will use a free to use shoe model that can be downloaded from the Grabcad model library.
The toon shader does not currently work with GPU.
Different style variations that can be achieved using this technique
- Start off by downloading the zip file (link above).
Import the shoe model: tubular nova pk ads.IGS (Z-axis).
Position and orient it so that it sits at the center of the scene grid.
Ensure that you use Z-axis when using models exported as .ass files with procedurals. Y-axis models may give unpredictable results.
IGS shoe model imported
We will now replace the Standard materials with an Arnold toon shader.
- Open the Slate Material Editor.
- Create a Map to Material shader and assign it to the shoe.
- Create a toon shader and connect it to the Texture Map of the Map to Material.
- Under edge_detection, reduce the angle_threshold from 180 to around 10. This will show more detailed edges in the sole of the shoe.
- Create a Utility shader and connect it to the emission_color of the toon shader. Increase the emission_weight to 1.
- Change the Utility Color Mode to obj and the Shade Mode to ndoteye. This will give us some interesting colors with a flat cartoon style shading.
Use a color_correct shader to refine the hue, saturation, etc values of the color shading effect given by the Utility shader.
To view the toon edge, you must change the filter_type (sampling settings) to contour. Note that increasing the contour_filter_width (sampling settings) value will increase render times. If it appears too thick try reducing it to 1.
Render Setup: Arnold > Arnold Renderer tab > Filtering > Type: Contour
Arnold Scene Source
We now want to export the finished sneaker geometry as a .ass file. This will allow us to use procedurals which will keep our scene light and responsive.
- Select the sneaker geometry and go to File > Export Selected. Choose where you want to save the .ass file. It will ask you what you want to export. The default settings (Geometry and Shaders) should be fine for what we want.
Export to Arnold Scene Source (.ass) using the default export options (Geometry and Shaders).
Next, we want to create an Arnold Procedural within which we can import the .ass file that we exported earlier. Procedurals allow you to keep your scene light and workable by deferring the loading of geometry data until render time. This will be useful when we create multiple instances.
- Create a new scene.
- Select Arnold from the create shape menu.
- Select procedural and click and drag in the viewport to create it.
- Select the Path button ... in the procedural and choose the .ass file that we exported earlier.
- We only want simple flat lighting for our Toon shading effect. We can do this by changing the Background Color (Environment and Effects) to white.
- Rotate the procedural 90 degrees in X so that it lies flat on the grid plane.
Now we want to create multiple instances of the procedural and distribute them randomly around the original shoe procedural. These will act as the cutting geometry that provides the effect after we have assigned the clip_geo shader to them.
The position and rotation of the procedurals will determine how the final effect looks, therefore feel free to experiment with this part of the tutorial. You could, for example, use Pflow or Object Paint to creatively distribute many more instances.
- Select the Arnold procedural and clone it between 5 to 10 times (ctrl-v). You may want to clone it even more. This is fine because we are using instanced procedurals and so the viewport will not slow down.
- Offset the position of the clones randomly around the original shoe procedural. Rename them to 'clip_geo'.
Shoe procedural with Viewport>Display Mode set to wireframe
Create a clip_geo shader and assign it to the instanced procedurals (not the original procedural). The clip_geo procedurals will clip geometry from any shape that intersects with it. In this case, the instanced procedurals are clipping the original shoe procedural. Instanced procedurals clipping the original shoe procedural (floor plane added with another toon shader assigned) Once you are happy with the effect, you are ready to render. You could also try animating the procedurals to create an effect that could be used for a motion graphics animation.
Instanced procedurals clipping the original shoe procedural (floor plane added with another toon shader assigned)
Once you are happy with the effect, you are ready to render. You could also try animating the procedurals to create an effect that could be used for a motion graphics animation.
That's it. You have reached the end of the tutorial. Well done! We encourage you to spend some more time with the MAXtoA user guide where you can find other tutorials such as this.