You can render C4D's native Hair object as Arnold curves using C4DtoA. To create a Hair object, add some geometry to the scene and select Simulate > Hair Objects > Add Hair from the menu. The Hair object has a default Hair Material. All features of the material which are related to the topology of the curves are supported (e.g. thickness, length, etc.). The look of the hair can be defined via the Arnold standard_hair shader (Arnold > Surface > standard_hair in the Material Manager). If you don't add any Arnold shaders to the Hair object it will render using a default hair shader.

To add Arnold related parameters to the geometry you must add an Arnold tag to it.

Main

Refer to the splines page to view more information about the specific hair attributes.

Export IDs

Hair ids are exported to a curve_id user parameter. Curve index is used as the id. 

Export UVs

UV coordinates of curves are exported to uparamcoord and vparamcoord user parameters. More information and workflow example can be found on the hair shader UV Parameters page. 

Min. Pixel Width

If this value is non-zero, curves with a small on-screen width will be automatically enlarged so that they are at least the specified size in pixels. The enlargement fraction is then used in the hair shader to adjust the opacity so that the visible thickness of the hair remains the same. For a given number of AA samples, this makes it a lot easier to anti-alias fine hair, at the expense of render time (because of the additional transparency/depth complexity). Good values are in the range 0.2 to 0.7. Values closer to 0 are faster to render but need more AA samples. So if your scene already uses very high AA settings, you should use a low value like 0.1. For best results, you may need to increase the auto-transparency depth, and/or lower the auto-transparency threshold, but watch the effect on render times. Note that this parameter currently works with the ribbon mode only and Opaque must be disabled.


There are two algorithms for rendering curves in Arnold, 'Ribbon' and 'Thick'.

Ribbon

This mode is recommended for fine geometry such as realistic hair, fur or fields of grass. These curves are rendered as camera-facing flat ribbons. For secondary and shadow rays, they face the incoming ray direction. This mode doesn't look so good for very wide hairs or dramatic zoom-ins because of the flat appearance. This mode works best with the built-in hair shader, that uses a Kay-Kajiya specular model. 

Thick

This mode resembles spaghetti. It has a circular cross section, and a normal vector that varies across the width of the hair. Thick hairs look great when zoomed in, and are specially useful for effects work, but their varying normals make them more difficult to anti-alias when they are small. You can use any shader with this rendering mode, including lambert, phong, etc.

The Thick mode currently does not work well with transparency nor refraction.

The hair shader is not designed for hairs that are much bigger than the pixel size.

Advanced

Render via Hair Render effect

When exporting hair, C4DtoA generates curves via the C4D SDK. In some situations the SDK is limited and curves are not generated properly. For instance when hair is grown along a Spline or length is controlled by a vertex map. By enabling this option, exported curves are generated by the Hair Render effect (added to the render settings) which must match the result of the Standard/Physical renderer.

Note, that this option is skipped in the IPR because of performance reasons and so the IPR might give an incorrect result.

Please note that motion blur is not supported when rendering via the Hair Render effect because of some limitations in the SDK.

Thickness

Hair thickness can be defined using the Thickness tab of the native Hair Material. You can setup root / tip width, a random variation and scaling thickness along hair guides by a curve (e.g. make hair thinner in the middle, etc.).

Hair thickness settings

Texture is not supported.



  • No labels