Has anybody tried using lidar data (usually las or laz format) for 3D viewing and measuring?
A typical file would range from as small as a few thousand points (xyz and intensity or rgb values) to over 1 billion. I am mostly interested in just loading under 100,000 points but 100 million would be great. I haven’t tried using this software yet and I’m curious what it can do.
Good question We should be able to display even huge number of points, but it also depends on how they are organized. If they are just a simple mesh → easy.
This image:
shows a mesh with 4.5 million triangles (from Vectors changes, to avoid a trap with modifying a temporary value – Castle Game Engine ).
I don’t have any knowledge about Lidar data formats. But if you can find a converter to convert them to any supported format (any on Supported model formats | Creating Game Data | Castle Game Engine , in particular glTF is recommended and popular and efficient) then you can use that with Castle Game Engine / view3dscene then.
Thanks for the quick reply. I’m glad to know that millions of points is really no issue.
Let me explain the nature of our data just a bit more. Lidar data in our case is captured by a UAV (drone) or a car. We collect up to 6 million points per second, but most often reality would be closer to just less than 1 million. When you scan for 20 minutes, you can get a lot of points in a hurry. And we sometimes scan all day.
The data itself is stored in a series of files but each point consists of a GPS time stamp, and XYZ coordinate and either an intensity value (like a black and white image) or an RGB color (or both).
The data is usually ordered by time, roadway, and or flight line.
What I need to do is provide a good 3D viewer for taking basic XYZ coordinate measurements from a segment of the data.
It looks as though there is a way to load individual points rather than an obj or ply file. If that is the case, I can rapidly read and load such points. I really just needed to know that such an interface was available and millions of points poses no problem.
I am open to any further advice. Again, thanks.
Ah, then let me give some more directions
( My first response above, “find some software to convert your data to glTF or X3D”, was more for non-developers who’d like to visualize data using our ready view3dscene: Viewer for glTF, X3D, sprite sheets and other model formats | Castle Game Engine . If you want to get your hands dirty and do development to make it happen, that’s great, that’s what Castle Game Engine is about! )
You can load any custom file format in CGE by reading the file and constructing a “graph of X3D nodes” on output. Such nodes can be loaded into TCastleScene instance, and thus you can construct yourself any 3D content you need and have the full capabilities – that is, our built-in loaders from e.g. glTF or X3D also use the same nodes, no cheating, so you can build everything yourself using any algorithm.
For start, follow our manual Manual | Manual | Castle Game Engine and especially take note of
- Viewport with scenes, camera, navigation
- Tutorial: Designing a 3D world
- Writing code to modify scenes and transformations
In particular the last link has a section " 11. Building a mesh using code" which is what you do when you load a model from your own file: Writing code to modify scenes and transformations | Manual | Castle Game Engine
More information about X3D nodes is in Scene graph (X3D) | Castle Game Engine , see in particular section " X3D in Pascal" there. It contains a number of subpages documenting various X3D nodes and Pascal examples.
You can also take a look at existing loaders. Some are quite complicated, but some are trivial and can be a useful starting point. For example loader from the STL file format is very simple: castle-engine/src/scene/load/x3dloadinternalstl.pas at master · castle-engine/castle-engine · GitHub .
Hope that these are useful starting point(s)