Rendering Curves as Feathers

Feather rendered as curves

This tutorial will cover how to render a feather using a paint effects brush that has been converted to curves.

A Maya file is available here.

Note:

A quicker and more efficient way to render multiple curves is to use the Curve Collector.

Mode

There are two algorithms for rendering curves in Arnold, ribbon, and thick. For the main stem, you will need to render the curve using thick mode.

Mode: ribbon Mode: thick

The individual barbs look better when rendered as ribbon mode:

Mode: thick Mode: ribbon (more suited for rendering feather barbs).

Ai Curve Width

When the Ai Curve Width is set too high, the curves start to overlap, and errors in the sampling will occur.

Ai Curve Width: 0.01. Curves are overlapping. Reducing the Ai Curve Width to 0.005 fixes the problem

Opacity

Adding a ramp texture map to the Opacity of the standard_hair will soften the edges of the curves.

No opacity Ramp texture connected to standard_hair.opacity shader

Ensure that the Ai Opaque attribute is added to the set and that it is disabled for the opacity to work properly.

Stem

Increase the curve_width so that it is at least twice the width of the feather curves (in this case a value of 0.04 was used). Make sure to change the mode to Thick so that the curve appears rounded. The main stem of the feather will require a regular glossy material. Connect a standard_surface shader to the Curve Shader of the stem curve.

Stem curve rendered as thick mode Wireframe

Shading

Create a standard_hair shader and connect it to the Ai Curve Shader attribute of the curves set.

Root Color

The images below show the effect of altering the root color.

root_color: White root_color: Black

Texture

The images below show the effect of adding a colored circular ramp to the specular_tint of the standard_hair shader.

Ramp texture connected to specular color Ramp texture connected to Root color Ramp texture connected to Root & Specular color

SSS only works with poly meshes and is therefore not supported by the curves primitive.

Visible in Specular Reflections/Transmission

To see the curves in glossy reflections and refractions you will need to add the following Override Attributes:

Ai Visible in Glossy/Visible in Refractions: Off Ai Visible in Glossy/Visible in Refractions: On

Curves are not visible in reflections by default. If you want your curve to be reflected, you will have to add the attribute Visible in Reflections to the override set containing the curves.

Curve is not visible in Reflection 'Visible in Reflections' override added to curve's override set

Arnold Set attributes

That concludes this tutorial on rendering curves as feathers. Rendering curves as hairs using override sets is a useful way to create complex looking scenes without the overhead of working with heavy amounts of geometry.