Feathers in Yeti can be created using the Instance node and our custom procedural feather geometry which was designed to make the process user friendly while producing an extremely light weight means of creating many feathers within a chosen rendering engine.
TABLE OF CONTENTS
Creating Feathers
Yeti uses a custom feather node which can be created via the CRF button on the Yeti shelf or Create Feather in the Yeti menu. Once created you will see the default feather shape at the scenes origin, this is a simple viewport representation of the final rendered feather.
In component mode you can select the vertices of the feather to adjust it’s shape, this control skeleton can be thought of as a simple polygonal surface but limited to the default topology.
Parameters to control the barb creation and tearing can be found in the Feather’s Attribute Editor. These parameters are passed into the Yeti graph as geometric attributes and used by our procedural generator to create a renderable feather, as the feather is evaluated they are used along with a unique id of the feather to generate variations per feather.
When editing an individual feather you will always see the skeletal control cage and generated barbs. Once instanced displaying the barbs produces very heavy results, thus by default each Yeti graph will only draw them in Skeleton mode - if desired you can switch this to Full in the Yeti nodes parameters.
Topology
The shape of the feather is controlled via a combination of the input proxy shape and the profile curve.
Attribute | Description |
---|---|
Number of Divisions | Controls how detailed the proxy geometry representation is, if adjusted the current level will be resampled to maintain the shape as close as possible. |
Barb Detail | Defines how many segments will be used to create the output barbs. |
Feather Texture Coordinates | Choose between Projected (default - aligned along the Z axis) or Parametric (previous - following the parametric shape of the feather and barbs). |
Profile | Profile curve used to define the shape of the feather along the length of the rachii. |
Rachii
The Rachii is the spine of the feather with a profile used to control the width along it's length.
Attribute | Description |
---|---|
Rachii Width | The width of the rachii along the length of the feather. |
Barbs
Yeti generates individual barbs within the feather shape for viewport preview and at render time, the barb output may be controlled via the Barb parameters in the Feather attribute editor. Below are a list of the parameters, what they do and an example of the output.
Attribute | Description |
---|---|
Barb Density | How dense to make the generated barbs. |
Barb Spacing | Controls the density of the barbs by defining how much space there should be between each one, this also sets an overall width for the barb that will provide a packed look to the final feather. |
Barb Start/End | Where the barbs start abd ebd along the length of the feather. |
Barb Width | Width of the barb. |
Barb Curvature | The amount of curvature along the length of the barbs. |
Barb Linearity | How straight the barbs are. |
Barb Length Variation | Varies the length of the individual barbs. |
Barb Diection Variation | Varies the direction around the normal of the feather surface. |
Barb Azimuth Variation | Varies the direction perpendicular to the normal of the feather surface. |
Default (1), Barb Start 0.5 (2), Barb End 0.5 (3), Barb Length Variation 0.5 (4), Barb Direction Variation 0.5 (5), Barb Azimuth Variation (6)
Tearing
Due to the complex underlying structure of feathers they are prone to barb clumping either as a result of some unfortunate accident or just general wear and tear. These “clumps” where the little hooks on the barb become entangled with neighbouring barbs gives the appearance of tearing along the edges of the feathers. This is simulation in our procedural feathers with the Tearing parameters described below.
Attribute | Description |
---|---|
Tearing | How much overall tearing in the feather. |
Tear Count | The number of tears in the feather. |
Tear Size | How big each individual tear may be. |
Default (1), Tearing 1.0 (2), Tearing 0.76 & Tear Count 70 (3), Tearing 0.88 & Tear Size 0.88 (4)
Populating Feathers
Once a feather has been created it can be used in a graph using the Add Object controls in a Yeti nodes Graph AE palette and selecting the feather node from the list of scene objects available.
The Instance node is used with the feather object to scatter the feathers on the surface of an object, either as is or if being instanced to fibres it may be deformed to provide much more control over the shape of the final plumage. All of the instance parameters may be used to control the look of the result.
A graph that uses the Instance node to instance feather geometry to generated fibres.
The result from the above graph showing the skeletal cages of the instanced feathers deformed.
When deforming feathers it’s suggested to use $N as the up vector to make sure they’re correctly aligned to the poles of the surface.
Feather Attributes
Besides any user attributes Yeti also exports some special feather attributes to the rendering engine to help with shading.
Attribute | Type | Description |
---|---|---|
strandu | float | U parameter along the generated barb (this is always generated by fibres, but generating feathers forces it to be exported). |
feather_param | float | Parameter along the length of the feather. |
feather_part | float | A value representing which part of the feather the geometry belongs to. 0 - rachiis, 1 - right side barbs, 2 - left side barbs |