![]()
Hardware rendering limitations
This section contains information about the unsupported features, limitations and workarounds for Hardware rendering.
Known limitations
Light linking for instanced lights
Hardware rendering supports per light-instance light linking. For example, two instances of a light shape can have different light linking.
For a light instance to illuminate the scene, the light instance should be connected to a light linker node, either indirectly through a light set, or directly through a transform node or a shape node.
If the light shape node is connected to a light linker node, all the instances of the light shape are affected.
The light linking relationship editor does not support instance light linking, so making per-instance light linking must be done indirectly by using light sets.
For example, put light_instance1 and light_instance2 in separate light sets, and set light linking relationship of each of the light sets.
Breaking the light linking of a light_instance directly in the light linking relationship editor (as opposed to through lightset) operates on the light shape, resulting all the instances of the light shape breaking.
Cube map is not affected by translation and scale
The translation and scale on the environment cube map are not taken into consideration by the hardware renderer. The cube map will render very differently compared to software rendering. There is no workaround for this limitation.
Hardware renderer performance is slow when baking projected textures
The hardware renderer performance is slow when baking projected textures.
Workaround: Reduce the baking resolution (Color resolution, Bump resolution) in the Render Settings: Maya Hardware tab.
Hardware renderer doesn't correctly sort transparent polys and there are artifacts on transparency mapped objects
If objects or parts of objects with different shaders have overlapping 3D bounded regions with respect to the camera, then the transparency sorting may not be as expected with respect to a software rendering.
This is due to the fact that the hardware renderer does not sort on a per pixel basis. There are basically two modes for transparency sorting in the Render Settings:
- Per Object
- Per Polygon
The axis aligned world space bounding box of objects is used as the main criteria for depth sorting with respect the current camera used for rendering.
For Per Object, objects are sorted from furthest to closest in depth to the camera. The distance measurement is from the center of the bounding box to the camera “look from” position. If more than one shader is assigned to an object, then each part of the object will have its bounding box computed. Each distinct part is called a shader section and the box, the shader bounds. If the whole object uses one shader then the shader bounds" are equivalent to the bounds for the entire object. The shader bounds are sorted from back to front.
Per Polygon provides further sorting refinement. The polygons are sorted for each object from back to front. When drawing the depth-sorted shader bounds the polygons are drawn from back to front. If this option was not turned on, then the polygons would be drawn in arbitrary order per shader bounds.
Workaround
For possible better sorting, the you can either:
- Split up polygons of the object into separate objects.
- Split up single shader regions on single objects into separate objects with one shader per object.
Hardware bump maps are dependent on texture resolution
The bump map appearance is dependent on the size of the mapped file texture, or the bump resolution and preset quality in Render Settings. If the resolution is changed the bump appearance will also change.
Workaround
Adjust the bump depth to restore the desired appearance.
Environment reflection maps must be mapped to the reflected color channel
Sphere and cube environment maps are only supported on the reflected color channel. Assigning one to another channel will produce undefined results.
BOT files are not supported by the hardware renderer
BOT file textures will be rendered black by the hardware renderer.
Hardware renderer clipping planes deviates from the default behavior of the software renderer and the mental ray renderer
For the software renderer and the mental ray renderer, if part of an object is beyond the far clipping plane, the entire object is rendered, including the part beyond the far clipping plane.
However, for the hardware renderer, if part of an object is beyond the far clipping plane, then only the part of the object that is in front of the far clipping plane is rendered. Parts of the object that is beyond the far clipping plane is clipped and not rendered.
ATI Ashli hardware shader plug-in unstable on 64-bit Linux
The ATI Ashli hardware shader plug-in is unstable on 64-bit Linux, and can cause Maya to crash when loading in shader files for display.
Shadows broken with newest version of Cg on nVidia cards
(Windows, Linux) We have supplied the beta 2 version of the Cg 1.5 libraries. Shadows do not work properly with later versions of these libraries on nVidia cards (on all platforms). ATI cards do not appear to have this problem.
(Mac OS X) Because a universal binary library version is required, we have supplied the 1.5.0012 version of the Cg libraries. On nVidia cards using Mac OS X 10.4.8, shadows do not render properly.
You can replace the Cg libraries in the run-time area with new versions for CgFx plugin shader development. However, we do not qualify or support newer versions of the libraries (for example, they will show this shadow problem).
Hardware renderer limitation with texture mapped to transparency channel
The hardware renderer does not support connecting a greyscale texture's outTransparency attribute to a shader's transparency channel.
Workaround
Use outColor instead of outTransparency.
Same texture placement must be used for color and transparency
Color and transparency textures need to use the same placement.
Hardware renderer limitation for Alpha Is Luminance flag
The hardware renderer does not support the Alpha Is Luminance flag for diffuse procedural textures on NV30 class hardware.
Workaround
Use a file texture with alpha instead of a procedural.
Hardware renderer does not support point light shadows
Shadows are not created for point lights when the hardware renderer is used.