Viewer 3.17.0 - Raspberry
This release focused on two targeted improvements to existing features, alongside a series of stability fixes. The Outline post-processing effect received two new options to address visual artifacts: per-object outlining to prevent depth sorting issues when multiple objects are selected, and a configurable depth bias to eliminate z-fighting halos on co-planar geometry. Additionally, interaction managers now support an occlusion check against non-interactive scene geometry, making it possible to prevent selections from "reaching through" solid objects in front of a target.
The remainder of the release was dedicated to crash fixes addressing a range of edge cases in geometry loading, material handling, rendering, and environment maps.
Post-Processing
- Added
separateObjectsto theOutlineEffectproperties. When enabled, each selected node is outlined individually rather than as a unified group. This prevents depth artifacts when selected objects are at different depths (e.g. one in front of another). Note that this has a per-node performance cost. - Added
depthBiasto theOutlineEffectproperties. A view-space depth offset applied during the depth comparison whenxRayis false. Reduces z-fighting artifacts where co-planar or nearly co-planar geometry causes the outline halo to incorrectly bleed through adjacent surfaces. A value of0disables the bias.
Interaction
- Added
occludeBySceneGeometrytoIInteractionManagerand interaction parameter settings. When enabled, intersections are filtered against all scene geometry, so that objects occluded by non-interactive solid geometry in front of the target cannot be interacted with.
Bugfixes
- Fixed a crash in contact shadow rendering when a null color value was encountered (SS-9665).
- Fixed an "Invalid token" error in the HTTP client (SS-9666).
- Fixed a crash in environment map loading when loader data was undefined (SS-9664).
- Fixed a crash in scene anchor tracing caused by degenerate (zero-area) triangles — a Three.js issue where
getInterpolationreturns null for such triangles (SS-9599). - Fixed two crashes in the geometry engine when geometry data was unexpectedly undefined (SS-9596, SS-9597).
- Fixed a
RangeError: Invalid typed array lengthwhen loading glTF files with certain malformed accessor data (SS-9595). - Fixed a crash in the material engine and material database engine when the material type was null (SS-9592).
- Fixed a crash in the glTF converter when a buffer
sbyteLength` was null (SS-9589). - Fixed geometry restriction calculation issues (SS-9563).