About this release

The 2021.1 release of LuciadRIA focuses on helping developers deliver an optimal user experience. It offers realism in 3D visualizations through physically based rendering of materials. Moreover, the release includes additional support for background data and OGC SE styling, some new or improved samples, and performance optimizations.

luciad portfolio
Figure 1. The Luciad product portfolio.

Benefits of the new features

Visualize 3D data realistically with physically based rendering

3D data sets have become more and more detailed, and now often have texture information. Visualizing the textures of a data set helps users distinguish between objects, and makes clear what an object represents. In the absence of textures, this is less clear.

Previous releases of LuciadRIA already added shadow effects and ambient occlusion. These features greatly enhance insight into the geometric structure of objects. There are situations, though, where objects are quite similar in geometry. Factory and building data typically consists of geometrically similar objects, for example. Although those objects may look similar in form, we can still tell them apart through their material properties.

Materials differ visually by how they reflect the light. A metal pipe, for example, will have a lot of reflection, while a sheet of paper reflects much less light. In this release of LuciadRIA, we enriched LuciadRIA with support for a set of materials. The computer graphics term for that is physically based rendering (PBR).

If 3D objects offer information on their material, such as metallic-ness and roughness, the LuciadRIA rendering components will pick it up. To create realistic reflection effects, LuciadRIA supports environment maps.

The PBR support is available for 3D icons in GLTF format and 3D tiles data containing material information.

imagRIA pbr
Figure 2. A building object with PBR information and an environment map that creates a realistic reflection effect.

Sample code to get you started

The LuciadRIA sample Monitoring building information has been extended to include PBR support. Moreover, the LuciadRIA documentation offers additional information on enabling PBR. Specifically, you can now find information and examples in the how-to guides Visualizing 3D icons, Styling mesh data, and Configuring WebGL Map effects.

pbr tubes
Figure 3. Monitoring plant infrastructure with PBR information.
pbr tubes operator
Figure 4. Visualization of plant pipes with PBR information.

Consume optimized 3D tiles for the best performance

3D tiles is an OGC community standard and a popular exchange format for 3D information. A typical example of data that is very suitable for exchange in the 3D tiles format is 3D city models. Despite the efficiency that comes from the tiled and multi-leveled nature of the data, there are still cases where the amount of data becomes a bottleneck. A solution for that is data compression. For 3D tiles, LuciadRIA supports both geometry compression and texture compression.

Support for the glTF Draco extension

Google’s Draco is a popular library for compressing geometry during the encoding of a 3D payload into the glTF format. LuciadRIA now consumes 3D tiles data sets that were compressed with Draco. Note that one of the systems capable of generating Draco-compressed 3D tiles is LuciadFusion.

LuciadRIA also supports glTF 3D icons that were created using Draco compression.

Support for WebP texture compression within glTF

The Google WebP image format is popular for the compression of textures. LuciadRIA now supports 3D tiles data sets that include textures compressed into the WebP Image format.

If LuciadRIA has access to a 3D tiles data stream that uses Draco and WebP compression, the transmission of the data speeds up, because the data is smaller. LuciadRIA can rapidly decode the compressed geometries and textures, so in comparison to 3D tiles without this geometry and texture compression, there will be a noticeable performance improvement.

The FAQ article Which glTF version is supported and what are the limitations? has been updated to reflect the supported glTF options and highlights.

Enrich your application with detailed background data

Operational data becomes more relevant when you show it in context. For that, you need detailed background data. There are various providers of such imagery data, and LuciadRIA already offered connectors for WMS and WMTS to connect to OGC-compliant data services. Next to that, LuciadRIA offers default connectors for dedicated services like Bing or Google Maps.

With this release, we enriched our set of connectors with a HERE maps connector. We also offer guidance on how to connect to OpenStreetMap data that is not offered through OGC services, but through OpenStreetMap tile servers.

Add OpenStreetMap background data

OpenStreetMap (OSM) data and derived data sets like OpenSeaMap can be delivered as an OSM tile service. These services adhere to the tile URL pattern http(s)://baseUrl/ ${z}/${x}/${y}.png. The LuciadRIA API already offers a connector for this type of pattern via the UrlTileSetModel. The LuciadRIA documentation now includes a how-to article.

osm bg data
Figure 5. Combining OpenStreetMap roads data with OpenSeaMap sea data on a LuciadRIA map.

Remember that you can also encounter services that offer OpenStreetMap data through the OGC WMS and WMTS protocols. If that fits your system architecture better, you can also serve OpenStreetMap tile data as OGC WMS or WMTS services through LuciadFusion.

Sample code to get you started

The how-to article How to visualize imagery from OpenStreetMap tile servers explains in a few steps how to add OpenStreetMap data to your LuciadRIA map view.

Add HERE Maps background data

HERE Technologies is a popular data provider. LuciadRIA now offers a connector to the Here map tile API. You can access various types of data, including aerial imagery and traffic information.

LuciadRIA also takes care of the attribution, and places it on the map.

Sample code to get you started

LuciadRIA now includes a tutorial, Visualize HERE Maps data, in its documentation set. This tutorial guides you through all steps, from getting a HERE Maps key, through the selection of the right data type, and finishing with the visualization in a LuciadRIA map view.

HERE map3
Figure 6. LuciadRIA map with HERE background data.
HERE map2
Figure 7. HERE road and traffic information.

Display text in world sizes with the extended OGC SE support

In most cases, maps show text in annotations or labels for map data. Points-of-interest are labeled with a meaningful name, for example, or street names are printed along a street.

Sometimes, though, the map must treat text as a georeferenced object. Runway markings are good examples. You typically need to display those exactly on the runway, and at the correct size, expressed in a real-world unit of measure, like meters. LuciadRIA now supports world-sized text as a feature within an OGC SE style specification.

ogcse text
Figure 8. Runway marking text visualized in real-word measurement units.

Additional OGC SE improvements

Strict text symbolizer placement through the OGC SE vendor option conflictResolution

When you set this option to false, LuciadRIA does not enable the automatic label deconfliction algorithm. All labels will be shown, and they will be positioned exactly as specified in the OGC SE description. Typical use cases for this option are cadastral maps and aeronautical charts.

Rotation for point-placed labels

Through an OGC SE text style, you can now specify a rotation for point-placed labels.

Customized external icon loading

You can now plug in an IconProvider that maps external graphics defined in OGC SE to custom images or URLs.

Sample code to get you started

The LuciadRIA sample Symbology encoding has been extended with a world-sized text example. The SE style of the “Places” layer renders large cities with a world-sized text label when you zoom in. You can observe this when you zoom in on Los Angeles or San Diego.

Other improvements

Ability to access the webGL context for external layer or object integration

Advanced LuciadRIA users and WebGL experts may want to enrich the WebGL view with effects or special content. Examples of such content are animated 3D icons and view-wide weather effects. To this end, the LuciadRIA WebGL view has been extended with a PostRender event. This offers a hook for advanced integrations.

The tutorial How to add external content to the map: An example with three.js explains an example of such an integration. Detailed information is available as well in the API documentation of the WebGLMap class.

New API to create a topocentric reference

Topocentric references were already supported and handled correctly in LuciadRIA. In this release, the API has been extended to define custom topocentric references. For more information, see the dedicated tutorial Topocentric references.

topocentric axes
Figure 9. Axes of a topocentric reference. The X axis points East, while the Y axis points North and Z points upwards. The axes are straight lines that don’t follow the curvature of the Earth, and the unit of measure is meter.
3D icons with multiple textures

Support for 3D icons to style points now includes GLTF icons with multiple textures.

carrier3D
Figure 10. Visualizing 3D icons with multiple textures.
All samples use React for their UI

The UI components of the LuciadRIA samples have been modified and now use React. LuciadRIA as a product is independent from any UI toolkit. By using React in the samples, we illustrate the integration with an UI toolkit. React is currently very popular, so the samples will be ready to use for many customers.

The article Editing, building and running the sample code now includes a section on the use of React. It includes pointers to components that are common to multiple samples.

Note that we also simplified the set of LuciadRIA samples by removing some samples and integrating their code elsewhere. The following samples are no longer available in the 2021.1 release: First Sample, GoogleLayer Widget, Google Maps, Layer Control, Projection, Raster Re-projection, and Ruler Controller.