2022.0

New featureLuciadRIA

LuciadRIA now supports 3D Tilesets that contain KTX2/Basis Universal images.

New featureLuciadRIA

LuciadRIA now supports 3D Tilesets that contain CRN images.

New featureLuciadRIA

You can now enable GPU texture compression on TileSet3DLayer for OGC 3D Tiles mesh data. This can greatly reduce the amount of GPU memory needed, improve performance and stability.

Enable when displaying meshes with large textures, such as reality capture reconstructions. By default, texture compression is enabled.
Disable when displaying meshes with lookup textures, such as CAD models.

If your environment does not support GPU texture compression, setting the flag has no effect. Use the "Device Support" sample to verify if texture compression is supported on your device.

New featureLuciadRIA

Added support for HTMLVideoElement as a texture on a mesh. For more information, see MeshCreateOptions.image. See the how-to guide on visualizing 3D icons for more information on how to use video as texture.

New featureDefense Symbology

LuciadRIA has been extended to support all military symbology standards in stand-alone mode. You no longer need a symbology service, because LuciadRIA now includes all military symbology icons by default. Next to displaying tactical plans, you can also preview icons, or include them in various UI elements. To allow you to retrieve such a preview, LuciadRIA offers new API: MilitarySymbologyPainter#createSymbolImage.

New featureDefense Symbology

You can now visualize MGRS grids on a LuciadRIA WebGLMap. This new feature is demonstrated in the "MGRS Grid" sample. For more information, read the MGRSGrid API documentation.

ImprovementLuciadRIA

LuciadRIA now support OGC 3D Tiles point clouds with Draco-compressed PNTS tiles. LuciadFusion also supports creating such datasets.

ImprovementLuciadRIA

A new performanceHints property has been added to FeatureLayerConstructorOptions. It provides settings that can dramatically improve the layer's data loading performance in some situations. Please refer to the API reference documentation for more information on when these settings can be applied.

ImprovementLuciadRIA

A new expression `frontFacing` has been added to `ExpressionFactory`.
It can be used to distinguish pixels that are part of front-facing triangles. This expression for example makes back-facing pixels transparent: map.layerTree.addChild(new TileSet3DLayer(model, { transparency: true, meshStyle: {colorExpression: ifThenElse(frontFacing(), defaultColor(), multiply(defaultColor(), color("rgba(255, 255, 255, 0.3")))} })); Note that if you just want to hide back-facing triangles, it's better to use the facetCulling option. map.layerTree.addChild(new TileSet3DLayer(model, { meshStyle: {facetCulling: FacetCullingType.BACKFACE_CULLING} }));

ImprovementLuciadRIA

New expression functions `normalize` and `length` have been added to `ExpressionFactory` that work on a vector of length 3 (`Point` or `Vector3`) or 4 (`Color`).

ImprovementLuciadRIA

RIA-3936
You can now use a displacement expression on point clouds, similar to displacement of 3dtiles meshes. See `PointCloudStyle.displacementExpression` for details.

ImprovementLuciadRIA

RIA-3762
We've done various improvements to draping of vector and raster data. Many cases where draped data appeared blurry, have been fixed.

ImprovementLuciadRIA

You can now set WebGLMap.maxMemoryUsageHint.cpuMB and WebGLMap.maxMemoryUsageHint.gpuMBto values higher than 4000MB. Previously, this would be capped at 4000MB. This allows you to use more memory in your application. It is intended for software that is run on high-end clients.

It is intended for use on high-end devices with enough available memory. Setting this number too high can cause instability.

ImprovementLuciadRIA

We replaced the PointCloudStyle.scalingMode option with PointCloudStyle.pointSize, which gives you more control over the point cloud dot size.

You can still use the existing scalingMode option for backwards compatibility.

ImprovementLuciadRIA

RIA-3775

LuciadRIA now supports Hexagon Smart Point Clouds (HSPC) in 2D EPSG references.

Before, we supported only HSPC datasets in 3D geocentric (EPSG:4978) coordinates, and non-referenced datasets.

Note that we still recommend to process your HSPC data in 3D geocentric coordinates, for optimal streaming performance. When relying on Hexagon's HSPC conversion functionality available in myVR, you can do this for example with these conversion parameters: mHSPCConverter --source_projection EPSG:7415 --output_projection EPSG:4978.

ImprovementLuciadRIA

We did various improvements to our point cloud rendering visual quality and performance, in particular for Hexagon Smart Point Cloud (HSPC). For details, see the documentation of PointCloudStyle and the documentation articles Tuning performance and visual quality of point clouds and Visualize Hexagon Smart Point Cloud (HSPC) data.

Performance
We improved raw painting performance of all point clouds. Your map will be more interactive and fluent when loading lots of points.
We added a new option PointCloudStyle.pointShape which influences how points are drawn, and how overlap between points is handled. When using SPHERE, overlap result in a high quality visual coverage of your data, but at the cost of performance. We propose to use DISC when you have a small point size as it improves performance. The default is DISC for HSPC, SPHERE for OGC 3D Tiles.

World-sized dots
Next to the existing PIXEL_SIZE and ADAPTIVE_WORLD_SIZE, there is a new scaling mode WORLD_SIZE. This mode is particularly useful for HSPC. It allows points to grow larger when you get close to them, based on a physical size in meters. This helps creating a visually closed surface up-close instead of having interspersed small dots. For details see the pointSize property on PointCloudStyle.

Incremental and partial tile painting
We now display HSPC point cloud tiles partially, based on their level-of-detail. This avoids highly visible transitions between tiles of different level-of-detail. This is automatically enabled for HSPC.

Gap-filling post-processing effect
We added an optional point cloud post-processing effect that intelligently fills up small gaps between points. This helps creating a visually closed surface by in-painting gaps of 1 or 2 pixels. You can enable it using the gapFill property on PointCloudStyle.

ImprovementLuciadRIA

RIA-1437
It is now guaranteed that the reference that is set on constructor for WFSFeatureStore and UrlStore will be propagated to the underlying codec on each query request. Also, it is possible now to specify in GeoJsonCodec and GMLCodec the reference of decoded shapes, which will override the default reference from data that is being decoded.

ImprovementLuciadRIA

RIA-3617
IconStyle: with IconStyle.modulationColor it is now possible to configure a color that is modulated with the icon. For example using an icon with gray-scale colors and a red modulation color will result in a resulting painted icon with red hues. Note that this will only be applied on a WebGL map.

ImprovementLuciadRIA

Transparency flag has now been added to Icon3DStyle in order to allow for correct rendering of meshes with transparent components. This should be set to true when a mesh either has a color or texture with an alpha channel less than 1.0. Note that setting it to true might impact performance.

Bug fixLuciadRIA

RIA-1016
Fixed an issue where labels drawn by FeaturePainter.paintLabel() or Controller.onDrawLabel() are not displayed on the WebGLMap, if the painter or controller does not also draw bodies for label shapes.

Bug fixDefense Symbology

RIA-3975
Fixed an issue where the content of the speedLabel (a text modifier) affected the length of the movement direction arrow for symbologies APP_6A, APP_6B and MIL_STD_2525b, where it shouldn't according to the specifications.

Upgrade considerationLuciadRIA

A dependency to the fast_float library version 3.4.0 has been added. This library is used to parse floating point values from strings.

Upgrade considerationLuciadRIA

LuciadRIA now uses the Earcut library. This new dependency requires no code changes.

Upgrade considerationLuciadRIA

RIA-3960
The zlib library has been updated to v2.1.12.

Upgrade considerationLuciadRIA

LuciadRIA now depends on the libraries myVRPointCloud, jsoncpp, pdqsort, and zstd to support Hexagon Smart Point Cloud (HSPC). These new dependencies require no code changes.

Upgrade considerationLuciadRIA

@luciad/ria/shape/format/MGRSPointFormat and @luciad/ria/shape/format/GARSPointFormat have been moved to LuciadRIA's Defense Symbology component. They have also been renamed. You can now find these in @luciad/ria-milsym/text/mgrs/MGRSFormat and @luciad/ria-milsym/text/gars/GARSFormat.

Additionally, the GARSFormatPrecision, MGRSFormatPrecision and MGRSFormatType enums have been moved into their own modules: @luciad/ria-milsym/text/gars/GARSFormatPrecision, @luciad/ria-milsym/text/mgrs/MGRSFormatPrecision and @luciad/ria-milsym/text/mgrs/MGRSFormatType

Upgrade considerationLuciadRIA

LuciadRIA now uses the Basis Universal library. This new dependency requires no code changes.

Upgrade considerationLuciadRIA

LuciadRIA now uses the Goofy library. This new dependency requires no code changes.

Upgrade considerationLuciadRIA

LuciadRIA now uses the Crunch library. This new dependency requires no code changes.

Upgrade considerationLuciadRIA

LuciadRIA now uses WebGL 2.0 instead of WebGL 1.0. WebGL 2.0 is supported by the latest versions of all modern browsers. To verify that your browser supports WebGL 2.0, run the LuciadRIA WebGLMap support sample. Note that a WebGL2RenderingContext is now passed in the callback of the PostRender event, instead of a WebGLRenderingContext.

Upgrade considerationLuciadRIA

RIA-3710
WFSFeatureStore.createFromURL and WFSFeatureStore.createFromCapabilities use now the options parameter of the same type WFSFeatureStoreCreateOptions. That way both the creation functions can use the same set of input parameters. Before the version property was missing in the options for WFSFeatureStore.createFromURL.