API Guide > Writing a Software Shading Node >

# Shading nodes classification

When registering your new shading node in Maya, you can assign a classification to your node that will determine where it appears in the Create Render Node interface. Each classification corresponds to a Tab and Frame in which it appears.

The following is a list of classification strings and where they appear in the interface when you use them.

Category | Classification String
--- | ---
2D Textures | "texture/2d"
3D Textures | "texture/3d"
Env Textures | "texture/environment"
Surface Materials | "shader/surface"
Volumetric Materials | "shader/volume"
Displacement Materials | "shader/displacement"
Lights | "light"
General Utilities | "utility/general"
Color Utilities | "utility/color"
Particle Utilities | "utility/particle"
Image Planes | "imageplane"
Glow | "postprocess/opticalFX"

## Implicit connections and the Create Render Node window

When you create a rendering node using Create Render Node, you are really executing embedded commands that are used to create a shading node and connect them together. The creation command is "shadingNode" and the connection command is "connectAttr". If you use the commands in the command shell window, no auxiliary nodes are created. All auxiliary nodes are created by the user interface.

The following is a complete description of what the buttons in the Create Render Node window do. The commands are listed by what they execute; this shows you what nodes get created, and how they are connected. For some classifications, the behavior is dependent on the status of check boxes or radio buttons in the window.

### Shaders

#### Maya/surface

(for example, blinn)

1. "shadingNode -asShader blinn;"

   The command creates the ‘blinn’ node, connects its ".message" attribute to the ".shaders" attribute on the defaultShaderList1 node - this registers the node as a shader.

   If the "Include Shading Group with Materials" check box is checked, then the following also occurs:

2. "sets -renderable true -noSurfaceShader true -empty -name blinn1SG;"

   "connectAttr -f blinn1.outColor blinn1SG.surfaceShader;"

   These command create a new shadingGroup and make the shading group’s surface shader the newly created blinn node.

#### Maya/volumetric

(for example, lightFog)

1. "shadingNode -asShader lightFog;"

   Same as above, used to register the node as a shader.

   If the "With Shading Group" check box is checked, then the following also occurs:

2. "sets -renderable true -noSurfaceShader true -empty -name lightFog1SG;"

   "connectAttr -f lightFog1.outColor lightFog1SG.volumeShader;"

   This will create a new shading group and make the shading group’s volume shader the newly created light fog node.

#### Maya/displacement

(for example, displacementShader)

1. "shadingNode -asShader displacementShader;"

   Same as above.

   If the "With Shading Group" check box is checked, then the following also occurs:

2. "sets -renderable true -noSurfaceShader true -empty -name displacementShader1SG;"

   "connectAttr -f displacementShader1.displacement DisplacementShader1SG.displacementShader;"

   Same as above, except that the new shader becomes the displacement shader for the new shading group.

### Textures

#### 2D Textures

(for example, checker)

1. "shadingNode -asTexture checker;"

   Creates the texture node, registers the node as a texture.

   If the "With New Texture Placement" button is checked, then the following are also executed:

2. "shadingNode -asUtility place2dTexture;"

   "connectAttr place2dTexture1.outUV checker1.uv;"

   Creates a 2d texture placement and connects it to the texture node.

   If the "As Projection" button is checked, then the following are also executed:

3. "shadingNode -asTexture projection;"

   "shadingNode -asUtility place3dTexture;"

   "connectAttr place3dTexture1.wim[0] projection1.pm;"

   "connectAttr checker1.outColor projection1.image;"

   Creates a projection 3d texture with placement, and connects the newly created 2d texture to its "image" attribute.

   If the "As Stencil" button is checked, then the following are also executed:

4. "shadingNode -asTexture stencil;"

   "shadingNode -asUtility place2dTexture;"

   "connectAttr place2dTexture2.outUV stencil1.uv;"

   "connectAttr checker1.outColor stencil1.image;"

   Creates a stencil 2d texture with placement, and connects the newly created 2d texture to its "image" attribute.

#### 3D Textures

(for example, brownian)

1. "shadingNode -asTexture brownian;"

   Creates the texture node, registers the node as a texture.

   If the "With New Texture Placement" button is checked, then the following are also executed:

2. "shadingNode -asUtility place3dTexture;"

   "connectAttr place3dTexture2.wim[0] brownian1.pm;"

   Creates a new 3d texture placement and connects its ".worldInverseMatrix" to the "placementMatrix" attribute of the newly created texture node.

#### Env Textures

(for example, sphere)

Identical to texture/3d above.

### Lights

(for example, pointLight)

"shadingNode -asLight pointLight;"

Creates the light node, and registers it as a light.

### Utilities

#### all utilities

(for example, imagePlane)

"shadingNode -asTexture -asUtility imagePlane;"

Creates the utility node, and registers it as a utility.