On rendering LIDAR scans

Rendering LIDAR scans isn’t the easiest thing when working in the visualization industry. A LIDAR scan normally is just a text-file which is supposed to represent a 3d piece of geometry. If you’re lucky, you can open up the file in a text-editor. If you’re not, you probably need an arcGIS product to open up the files. I cannot disclose entire the workflow I’ve developed to render these files, but I just wanted to let you know it’s possible and point out a few steps. In the end, I was able to integrate LIDAR scans in a movie for the city of the Hague.

This is a render of a laserscan. There are no materials yet.
A typical image of a LIDAR scan. This scan is mapped with RGB values. These can be captured together with the scan or applied to the scan later on. This image consists of a large number of scan points, close to each other.


The LIDAR files we work with usually are scans of larger urban areas with pretty high detail. The scans which are publicly available here in the Netherlands are found on the site http://www.ahn.nl. These scans can be bought or are provided by a client, if you’re lucky. There are all sorts of programs out there to create images from these scans. Some of these programs are open-source, such as the LAStools, GRASS. But if you want to create a full fledged animatied short, you’re on your own. Normally, these scans are used for analytical or mapping purposes in specialized software. The scans are processed and then discarded. This is not possible when trying to render such scans. They consist of billions of separate points. Common rendering software such as Mental Ray or Vray aren’t created to handle this kind of geometry without some system to handle the geometry efficiently. Besides that, you’d probably want to edit the scans as well. Which is very difficult to say the least.

This is the total area which is used in the animation. On the foreground a new piece of read is placed into the the scan.

ascii lidar

For the Rotterdamsebaan-movie we received the scan as ascii text-files. In total about 500 million scan points. We had to integrate a new highway and tunnel into the scan. Animations of the new highway are integrated into an animated movie which tells the story about this new connection into The Hague. To handle the scans, I’ve set up a series of scripts to slice and dice the data. Firstly, I’ve used a the LAStools to combine the scans into one large scan. After that the scans are sliced into chunks and converted to obj geometry. After that the obj-files are converted into max-files (3dsMax 2010). there’s actually a batch converter utility within 3dsMax to do that, very handy. After that there’s a bit of maxscript magic which I can’t share. What we end up with is a large set of small chunks which can be loaded in and out of memory. The result is seen here. We can integrate the scans right into our normal rendering process, which means we can create just about any animation with these monsters.

From close-up the scan shows its structure. Trees are spikey, cars are also visible as small bumps.


Join the discussion and tell us your opinion.

Ralf Bontenreply
2013-12-13 at 21:47

I have Lidar data wich I need to convert into a 3d mesh.
How did you get the lidar data into an obj mesh? With which software?

Klaas Nienhuisreply
2013-12-13 at 22:55

Hi Ralf,
In this case I used the LAStools mentioned in this article, specifically the las2tin tool. I remember it was in total a pretty long list of commandline tools to get the mesh. You can do about anything with these tools. I do think you need a license now to get clean results.
In a more recent project I’ve converted the lidar data in QuantumGIS into a texture to displace geometry in 3dsMax. An example map: http://bit.ly/18qzKGi. It was more flexible and much easier. The downside was the limited colordepth of 8 bits (0-255).
If you need any help, let me know.

Leave a reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.