API Guide > Viewport 2.0 API > Maya Viewport 2.0 API Guide > 4. Advanced Topics >

# 4.1 Software Shading Node Support

A fixed set of internal Maya surface shaders is supported. These are shaders which are connected to the “surfaceShader” attribute of a shading engine. The attribute values and possibly upstream connections on these shaders are examined and the appropriate translation to a hardware shader is performed.

For surface shaders that are plug-ins, and for currently unsupported internal Maya surface shaders, an attempt is made to also perform a translation into a suitable hardware shader. To do this, the internal logic examines the attribute names on the unknown surface shading node and attempts to map them to the parameters of Maya’s Phong fragment shader graph. Any matching attributes are treated in the same manner as the framework would for the attributes of a supported shader. Thus, matching attributes such as “color” are translated as well as connected to upstream nodes (where appropriate).

In the image below, a plug-in “anisotropicShader” node is the surface shader assigned to the sphere in the scene. This plug-in is shipped as part of the devkit and does not require any modification in order to be achieve a minimal level of support using this automatic system. The “color” and “specularColor” attributes are recognized, as are the input connections. The upstream checker and ramp textures are thus natively supported in hardware the same way they would be if they were connected to an internally provided shader.

Figure 63

Internally, the mapping could be as follows, where the match is made to an internal shader. The mapping on “color” equates to using an internally specified “shader” to support rendering the textures.

Figure 64