Pointclouds for planning and civil engineering in Unity
I've been developing a workflow between the DEFRA (UK Gov'department for Environment, Food & Rural Affairs) LIDAR datasets and Unity.
Why use LIDAR data?
Some projects need more accuracy than satellite sources can provide. I've found the heightdata is often accurate at the point it is polled but is only polled at certain intervals - typically beteen 5-20M and even up to 200M apart on common datasets. Then the height between each polling point the data is interpolated and sometimes the whole lot is smoothed making things worse. It doesn't include structures, trees etc and being a measurement from sea level it doesn't project the curvuture of the earth. A rare problem perhaps but one that caused me some massive headaches in the past.
Anyway, LIDAR solves many of these problems so here we are.
This is OSGrid Ref SX99. A 100km2 area that captures most of the City of Exeter, UK. It was merged together from 40 or so separate scans, aligned to match satellite imagery from a separate source to provide point colours, oversampled areas were decimated to a more or less uniform 50cm interval, then moved to origin and saved as PLY with as X Y Z R G B binary. Then it was read into Unity with Point Cloud Importer by Keijiro Takahashi.
It's about 90M points, stored in 1.3GB, and runs at around 30fps at HD with a RX480.
Next steps are to automate the workflow where possible to draw down the surrounding area and try and develop a shader that renders points based on current screen density for performance.