# 0.60.9.0

## Improvements

• Viewer : Added settings to control aperture and clipping planes when looking through lights. This can be customised on a per-light basis using the new visualiser settings on the Light node.

• Light : Added visualiser settings to control aperture and clipping planes when looking through the light in the Viewer. These settings override the defaults specified in the Viewer itself.

• LightToCamera : Added distantAperture and clippingPlanes plugs.

• Arnold Render : Changed warnings for invalid mesh lights to be one descriptive warning per light, instead of repeating an unclear warning for every surface that links to the light.

## Fixes

• Viewer : Framing the scene while looking through a light no longer tries to frame the light itself.

• SceneReader : Fixed bug attempting to read unsupported custom attribute types from USD files. This caused an obscure Cannot compute hash from a CompoundObject will NULL data pointers! error, but now prints a warning instead.

• GafferTest.TestCase :

• Fixed assertNodesAreDocumented() to work for Nodes with multiple base classes.

• Fixed assertTypeNamesArePrefixed() to work for Nodes in Python submodules.

## API

• GafferTest.TestCase : Added plugsToIgnore argument to assertNodesConstructWithDefaultValues().

• OpenGLRenderer : The gl:queryBound command now supports an omitted parameter containing a PathMatcher with paths to skip when computing the bound.

• SceneGadget : Added new bound( selected, omitted = nullptr ) signature, which allows certain paths to be omitted from the bound computation, with or without limiting to selection. The previous selectionBound() method is now deprecated.