
Point Cloud add-on
Along with the latest version of Evergine, we’re excited to introduce the newly created Point Cloud Add-on. This is a significant step toward streamlining the creation and integration of highly detailed digital twins within the engine, allowing for a more accurate and immersive representation of the real world. In this article, we’ll dive into what a point cloud is, the common methods used to obtain this rich data, and, most importantly, how you can leverage the new add-on to visualize them in your Evergine projects.
What is a point cloud?
Imagine you take a high-tech, 3D photo of an object or an entire room. Instead of capturing a flat image, this “photo” records millions of tiny dots in space. That collection of dots (or points) is called a point cloud.
Each point in the cloud has two key pieces of information:
- Where it is (Position): Its exact location in 3D space. This tells the computer where it should draw the point.
- What it looks like (Attributes): This can be information like the color of the surface, how brightly the laser light reflected (intensity), or even metadata that helps identify the object it represents (classification).
Because a point cloud is created by scanning real structures, like a factory floor or a city street, it is the foundation for a digital twin.
How are Point Clouds obtained?
If a point cloud is the raw data, the next question is: How do we capture millions of these precise measurements from the real world?
Point clouds are generated through specialized 3D scanning processes that measure the geometry of physical environments. The two most common approaches are:
- LiDAR (Laser Scanning)
LiDAR (Light Detection and Ranging) is typically used for high-accuracy, large-scale mapping (like buildings or terrain).
- The Process: A scanner rapidly fires millions of laser pulses and measures the time it takes for the light to return. This “Time of Flight” measurement instantly calculates the precise distance and position of the object’s surface.
- Best for: High precision, capturing large areas quickly, and working in various lighting conditions.
- Structure from Motion (SfM)
SfM is an inexpensive and flexible technique, based on photogrammetry, that uses visual data instead of laser light.
- The Process: Standard digital cameras take many overlapping 2D photographs of an object or area from different angles. Specialized software then uses algorithms to automatically calculate the 3D position of each point by finding matching features across all the different images.
- Best for: Detailed texture and color data, capturing smaller objects, and using readily available equipment like drones or smartphones.
Features of the Evergine’s point cloud add-on
The Evergine Point Cloud Add-on was engineered from the ground up to address the biggest challenge of point cloud visualization: rendering big datasets quickly and efficiently. We achieved this by implementing two core, performance-driven features:
High performance Compute shader-based rasterization
We’ve completely bypassed the classical graphics pipeline (vertex and pixel shaders) and rewrote the entire point cloud rasterization process using compute shaders.
This change makes the rendering significantly faster and gives us unprecedented control over how points are drawn. This control allows us to easily implement crucial visualization improvements like per pixel color blending, what is key for improving visual quality, as we blend the color of points that fall into the same screen pixel and have a similar depth. This greatly reduces the aliasing and noise that is typically intrinsic to point cloud rendering, resulting in a much cleaner and more stable image.
Figure 1. Comparison between the typical aliasing of a point cloud and the result obtained when rendering the cloud with the new method
Progressive rendering
To ensure a smooth experience, even when loading several millions-point clouds on standard commodity hardware, the add-on utilizes progressive rendering.
Instead of trying to render the entire cloud at once, which could freeze the application, the add-on:
- Renders progressively: It renders a fixed, high number of points each frame.
- Rapid Convergence: While the total time to fully render every point depends on the cloud size, the initial, high-quality image usually converges within a second and is typically not perceived as a lengthy delay.
This technique prioritizes usability and responsiveness, giving you a highly interactive view of your digital twin data almost instantly.
Supported formats
The Evergine Point Cloud Add-on is designed for broad compatibility, supporting three primary file formats: LAS/LAZ, E57, and PCD. The LAS and its compressed counterpart, LAZ, along with the E57 format, are widely used across the 3D scanning industry, ensuring seamless integration with data from most commercial scanners. The PCD (Point Cloud Data) format, while less common in raw scanner output, offers a more flexible and highly optimized structure, allowing it to be loaded into Evergine much faster than the other alternatives.
Start using Point cloud add-on in your project
Integrating the new Evergine Point Cloud Addon into your existing project involves three straightforward steps: adding the addon, configuring the render pipeline, and finally loading your data. This process is detailed in link to docs.
Add the add-on to your project
Open Evergine Studio and add the Evergine.PointCloud add-on to the project. Refer to this guide to learn more about adding add-ons.
Set up the addon render pipeline
The addon uses a custom rendering process, which must be initialized early in your application’s lifecycle.
Step A: Configure the Scene Initialization
Open your main scene file, typically MyScene.cs, and ensure the necessary initialization code is added:
Step B: Initialize the Runtime
Next, open MyApplication.cs. Within the application constructor, you must call the static initialization method from the addon to register core runtime services:
Load your cloud data
With the pipeline set up, you are ready to load your point cloud. The Evergine Point Cloud Addon simplifies loading datasets through a static runtime method. You can load any cloud in a supported format (LAS/LAZ, E57, or PCD) by calling the asynchronous method, providing the file path to your data:
Gallery