Rendering Curves as Feathers

Feather rendered as curves (rollover image).


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. An .ass file is available here.


  • The curves were first generated as a Paint Effects brush - strokeFeatherExoticLarge.mel and then converted to curves - Modify>Convert>Paint Effects to curves.


  • To render this many curves, you will first need to create an override set for the curves. This will enable you to add the following 'Override Attributes' to the curves without having to add them to each individual curve.

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. 

The individual barbs look better when rendered as Ribbon mode:

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

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

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 an Ai Standard shader to the Curve Shader of the stem curve.

Create an Ai Hair shader and connect it to the Ai Curve Shader attribute of the curves set. Values that seem to work well are high Specular Gloss values (around 60) with low Specular Weight values (around 0.3).

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

The images below show the effect of adding a colored circular ramp to the Root Color and Specular Color of the Ai Hair shader.

Shader network for feather curves. Circular ramp connected to color. Gray scale ramp connected to Opacity.

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

In order 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


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.

Ai Visible in Glossy and Visible in Refractions added to override set containing curves



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.



The curves were first generated as a Paint Effects brush - strokeFeatherExoticLarge.mel and then converted to curves - Modify>Convert>Paint Effects to curves.

  • No labels