VRayToon is a very simple atmospheric plugin that produces cartoon-style outlines on objects in the scene. The source of VRayToon is available as part of the V-Ray SDK. Note that VRayToon is not intended to be a full NPR (non-photorealistic rendering) effect. However, it may be useful in many cases.
Why an Atmospheric Effect?
There are several solutions for adding toon effects to 3d renderings for 3ds Max; most of them function either as special materials (shaders) or as render (post) effects. Each of these approaches has both advantages and limitations. VRayToon has been implemented as an atmospheric effect for several reasons:
The implementation is very simple.
Works with any camera type supported by V-Ray (spherical, fish-eye etc).
Works with any camera effects (depth of field and/or motion blur).
Works with raytraced effects such as reflection and refraction.
Smooth and consistent outlines for intersecting objects.
Creating a VRayToon Atmospheric Effect
can be created from the VRayToonEnvironment dialog of 3ds Max. To create a VRayToon effect choose Rendering > Environment... from the 3ds Max main menu. Then click the in the Atmosphere roll-out button and choose VRayToon:
Line color - this is the color of the outlines.
Pixels width - this is the width of the outlines in pixels.
World pixels width - this is the width of the outlines in world units. Lines closer to the camera will be thicker.
Opacity - opacity of the outlines.
Normal threshold - this determines when lines will be created for parts of the same object with varying surface normals (for example, at the inside edges of a box). A value of 0.0 means that only 90 degrees or larger angles will generate internal lines. Higher values mean that more smooth normals can also generate an edge. Don't set this value to pure 1.0 as this will fill curved objects completely.
Overlap threshold - this determines when outlines will be created for overlapping parts of one and the same object. Lower values will reduce the internal overlapping lines, while higher values will produce more overlap lines. Don't set this value to pure 1.0 as this will fill curved objects completely.
Do reflections/refractions - this will cause the outlines to appear in reflections/refractions as well. Note that this may increase render times.
Trace bias - this parameter depends on the scale of your scene, it determines the ray bias when the outlines are traced in reflections/refractions.
Hide inner edges - when this option is enabled, the inner edges of the geometry won't be considered for the calculation of the edges texture.
Compensate camera exposure - when this option is enabled, the Line color value will be automatically adjusted to compensate for the exposure correction applied by the camera
This group of parameters allows the user to control the outlines using various texture maps.
Color map - a texture map for the outline color. Screen-mapped maps will work best. Maps with World XYZ mapping are also supported, but may not work very well.
Width map - a multiplier texture for the outline width. Screen-mapped maps will work best. Maps with World XYZ mapping are also supported, but may not work very well.
Distortion map - a texture that will be used to distort the outlines. This works similar to bump-mapping and will take the gradient of the texture as direction for distortion. Note that high output values may be required for larger distortion. Screen-mapped textures work best, although World XYZ mapping is also supported.
Opacity map - a texture for the outline opacity. Screen-mapped textures work best, although World XYZ mapping is also supported.
Using these controls, you can specify which objects will be affected by the VRayToon atmospheric. Using these options, you can achieve different outlines for different objects in the scene. To do this, you need to create several VRayToon atmospherics and include each object in one of them.
- VRayToon only provides outlines. You will need to come up with your own cartoon-style materials (for example, using falloff maps etc or other third-party material plugins).
- VRayToon has no per-object settings; however, you can add several VRayToon atmospherics to the scene, each applied to a different set of objects through the Include/exclude objects list.
- VRayToon will not work properly with objects that have their Cast Shadows property turned off.
- The quality of the lines depends on the current settings of the Image sampler.