= Basic fur setup = NOTE: This tutorial is a detailed look into what goes on at the network level. An automatic way to create the same effect is to use the [Add Fur|/shelf/addfur] tool on the shelf. See [Fur overview|/fur/advancedfuroverview] before you begin. Creating fur currently involves working in the network. See the [network editor help|/ref/panes/network] for information on navigating and creating nodes in the network editor. == Fur surface node == # Click the [Icon:SOP/grid][Grid|Node:sop/grid] tool on the shelf, then click in the [scene view|/ref/views/3dview] to place a new surface. # Double-click the name of the object node and rename it `Fur`. # Press ((4)) to enter component mode. This moves you down into the geometry inside the object you just created. # Press ((Tab)) in the viewer and type `fur` to create a [Icon:SOP/fur][Fur surface node|Node:sop/fur] in your geometry object and connect the grid to its first input. The [Fur SOP|Node:sop/fur] has three inputs. # Skin geometry -- the surface on which to create the fur (the grid in this example). # Guide geometry -- curves representing guide hairs. See [using guide hairs|usingguides] for more information. # Clump geometry -- See [clumping|clumping]. # The Fur node and the [procedural shader|/nodes/shop/vm_geo_fur] pick up attributes from the skin geometry and apply them to the hairs. By default, they will grab all attributes on the surface (the __Skin Attributes__ parameter is `*`), but only some are meaningful to the fur nodes (for example, `width`, `Cd`, `furdensity`). See the [node documentation|Node:sop/fur] for a complete list of attributes. The default width of hairs is quite thick, so we'll add a `width` attribute to the surface, which will be copied onto the hairs and set it to a lower value. Insert an [Icon:SOP/attribute][AttribCreate|Node:sop/attribcreate] node between the [Grid|Node:sop/grid] and [Fur|Node:sop/fur] SOPs and change the __Name__ parameter to `width`. # Set the first __Value__ field to `0.025`. (Make sure to set the __Value__, not the __Default__.) == Set up the fur procedural shader == Since we will render using the procedural shader, we're using the fur surface node for visualization only, so we need to prevent it from rendering. # Create a [Icon:COMMON/null][Null|Node:sop/null] node in your geometry object and Ctrl-click its [display flag|/nodes/sop] to set the _render flag_ on it. Do not connect the Null to any other node. The render flag controls which node is rendered. By putting it on a disconnected null, we ensure the geometry in this object will not render. # The [fur procedural shader|/nodes/shop/vm_geo_fur] needs an _object_ containing the skin geometry (because the renderer only knows about objects). So we'll extract the skin geometry out into a new object and then reference it in the fur procedural shader. Create another [Icon:COMMON/null][Null|Node:sop/null] node in your geometry object between the [Icon:SOP/attribute][AttribCreate|Node:sop/attribcreate] node and the [Icon:SOP/fur][Fur SOP|Node:sop/fur] and name it `SKIN_OUT`. We'll use this Null as the target for extracting the geometry. The Null should always be the node connected to the Fur node's skin geometry input. This lets us insert nodes above the Null later. # Select the `SKIN_OUT` node in the network editor, and select the grid in the viewport, then click [Icon:SHELF/extract_object][Extract|/shelf/extract] on the __Modify__ shelf tab. This will create a new geometry object that automatically references `SKIN_OUT`. # Click `obj` in the path at the top of the network editor to return to the object level, and rename your new geometry object `SKIN_REFERENCE`. # Select the `SKIN_REFERENCE` node. In the parameter editor, click the __Render__ tab and turn off __Renderable__ to prevent double rendering. Also, turn off __Automatically Compute Normals__ on the __Geometry__ subtab of the __Render__ tab. # Double-click the `Fur` node to go into its geometry network, and use the ((Tab)) key to create a SHOP Network. [Image:/images/fur/basic_nodes.png] # Double-click the SHOP network to dive into it. Press ((Tab)) and type `Mantra: Fur Procedural` to create a [Fur Procedural|/nodes/shop/vm_geo_fur] node. # In the [parameter editor|/ref/panes/parms] of the [fur procedural shader|/nodes/shop/vm_geo_fur], click the [Icon:BUTTONS/chooser_node] node chooser button next to __Skin__ and choose your `SKIN_REFERENCE` object from the tree. # Click `obj` in the path at the top of the network editor to return to the object level. Select the `Fur` object. In the parameter editor, click the __Render__ tab, then click the __Geometry__ sub-tab. Click the [Icon:BUTTONS/chooser_node] node chooser button next to __Procedural Shader__ and choose your fur procedural from the tree. == Apply the Hair material and render == The [hair material|/gallery/shop/material/hair] is a basic material for use with curves, which gives the geometry a fur or hair look. This material uses a special normal with the diffuse and specular to give a tubular look to non-dimensional curves. # Click the [Material Palette|/ref/panes/materialpalette] tab above the network editor. Drag and drop a [Hair Material|/gallery/shop/material/hair] (under `Organic`) from the list on the left side onto your grid object. # [Set up lights|/shelf/lightsandcameras] and [do a test render|/rendering]. [Image:/images/fur/basic_render.png] It is not necessary to apply the hair material; however, it will give your fur a more natural look and allows you to set the color. You can also set the color using the [Changing the color of the fur using the color attribute|changingcolor] or the [Control the Fur Color using a Color Map|texturemap_color] tutorials. == Tips == * The [fur procedural shader|/nodes/shop/vm_geo_fur] parameters are very similar to those of the [fur SOP|Node:sop/fur] and can be referenced so that when you make changes to them they will be automatically updated in the viewport. For example, if you change the length or density you might want it to be reflected in the viewport without having to change it in both nodes. To reference parameters, right-click the parameter name and select __Copy Parameter__, then right-click the matching parameter name on the [fur SOP|Node:sop/fur] and select __Paste Copied Relative References__. * You can turn off the __Renderable__ checkbox on the __Render__ tab of the `SKIN` object if you don't want the grid surface in the render. NOTE: Once you have the basic fur set up, it is useful to add guide hairs which gives you more flexibility in styling and is necessary if you plan to animate your character at any point in time. See [Using Guide Hairs|usingguides].