3D TransparencyRenderMode property/feature
While rendering opaque surface is straightforward, things get a bit more complicated with semi-transparent or transparent surfaces as they should allow seeing other 3D-series and objects as well as data points behind them. LightningChart offers 3 options for handling transparency of the surface: Unordered, ShaderApproximation and OrderingTriangles, each with their advantages and disadvantages. TransparencyRenderMode property can be used to select this.
Unordered - Renders transparent object faces in the order they are created. This is good for all non-transparent surfaces and identical to the old library behavior. For translucent surfaces it may work under certain view angles, but could be completely opaque from other angles, or alternatively light effect on surface may appear incorrect (artifacts may be seen).
ShaderApproximation - Uses shader for transparency effect. This approach is almost as fast as Unordered, but partial transparency is handled correctly between multiple surfaces or on the same surface. The drawback is that surface edge is less smooth (more ragged/aliased) compared to Unordered or OrderingTriangles options. When different types of translucent series/objects are rendered in 3D charts, ShaderApproximation option of TransparencyRenderMode should be used, as it helps to mitigate artifacts and improve translucent object handling in the chart.
OrderingTriangles - Orders object face triangles in proper z-order. This would be slow on items with large number of faces (1 million or more). It also doesn’t work with multiple surfaces (viewing angle should match multiple surface order).
On the left, two WaterfallSeries3D with the one in front having transparent fill using ShaderApproximation. On the right, semi-transparent PointLineSeries3D coiled as a spring.
Semi-transparent SurfaceMeshSeries3D wrapped as a tube on the left. On the right, Several SurfaceGridSeries3D with top one having transparent fill using ShaderApproximation.
In earlier version (10.5.1), only surface type series (SurfaceGridSeries3D, SurfaceMeshSeries3D and WaterfallSeries3D), as well as for PointLineSeries3D, had it. From LightningChart version 12.0 onwards, TransparencyRenderMode is available for all other 3D series types: BarSeries3D, MeshModels, Polygon3D, VolumeModel and Rectangle3D. When different types of translucent series/objects are rendered in 3D charts, ShaderApproximation option of TransparencyRenderMode should be used. The new feature helps to mitigate artifacts and improve translucent object handling in the chart.
Note that this property is available only when DirectX 11 renderer is used, in other words when RendererDeviceType is either HardwareOnlyD11 or SoftwareOnlyD11.
Example ExampleTranslucentChart3D
To see feature demonstration as example, check ExampleTranslucentChart3D from our Demo.