Stylized Toon Shading in Arnold: Hatching, Shadow Masks and Per-Object Controls
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Stylized Toon Shading in Arnold: Hatching, Shadow Masks and Per-Object Controls
I recently put together a video walking through some of the techniques I use when building stylized, non-PBR shaders in Arnold for Maya.
This isn’t really a “build this exact shader” tutorial. It’s more about showing how a few fairly simple Arnold and Maya nodes can be combined to produce inconventional results.
In the video I start with aiToon and gradually build on top of it using ramps, projections, sampler information, noise and custom attributes.
Some of the things covered include:
Creating line and cross-hatching style patterns with ramps
Using camera projection to keep hatch directions consistent on screen
Using surface luminance to isolate light and shadow regions
Distorting and varying Arnold contour widths with procedural noise
Driving toon-shader properties using aiUserFloat
Creating per-object color overrides with aiUserColor
Adding custom Arnold attributes directly to Maya shape nodes
Using one shader across many objects while still allowing individual objects to have different colors, line widths and other properties
Experimenting with Arnold utility, math and color nodes to push the result further
One of the techniques I find particularly useful is using custom attributes on the shape itself.
Instead of creating five or ten nearly identical shaders for different objects in a scene, you can build one larger shader network and expose selected parameters through Arnold user-data nodes. Each shape can then carry its own values for things such as line width or color while continuing to use the same material.
The other area I spend some time on is deliberately abusing fairly ordinary texture nodes. A ramp doesn’t necessarily have to behave like a conventional texture. Once you start feeding it through UV transforms, camera projections, noise, luminance information and remapping nodes, it becomes a useful building block for hatching, graphic shadow patterns and other NPR effects.
A lot of these are techniques I wish I had found documented when I first started experimenting with Arnold outside of conventional physically based rendering, so I hope there’s something useful in here for anyone else interested in pushing aiToon a little further.
Video: