I do not understand how the normals generation process is sensitive to material and reflectivity. The point clouds I am getting from the Lidar guys have no material, just color for the points. The reflectivity may be the same as what they are calling intensity but I do not see how this enters into calculating normals. My approach to computing normals is to take the cross-product of two vectors constructed from the sides of a triangle defined by 3 cloud points that are adjacent to each other. Finding 3 adjacent points that are not too close to collinear so that good a good normal can be computed is the heart of the problem. For clouds with 10-1000Mpts you need to find a better way to identify adjacent points than using conventional search techniques, even those that run in n x log n time, if you want to find the normals in minutes rather than hours. I think this is possible for some cases.
In terms of gaming engines, these employ the GPU hardware to do the heavy lifting which now can provide 10’s of teraflops of performance for ripping thru the calculations. Rhino makes use of the GPU in this way to implement a clipping plane. A clipping plane removes points above the plane so you can get a cross-section view inside a building. Even with 200Mpts clouds, the rotation/moving/tilting of the clipping plane to show a difference cross-section is very fast. I looked at CPU & GPU activity while rotating the clipping plane and could see the GPU hitting over 85% activity while the CPU was doing next to nothing. This is a great example of GPU benefit for point cloud display. I would imagine your tools have a responsive clipping plane function also.
What I am not working on is using the GPU hardware to do massively parallel normals computation. I have yet to write a program that uses 1000’s of CUDA cores to do parallel calculations. This might be a route to faster normals generation. Mabe some of your tools already use this method. It so it could be a marketing bragging point. There are several articles describing this approach if you search for: CUDA cores for computing normals of point clouds
So I will continue working on my point cloud Python/C++ code to find good surface normals quickly.
Hopefully the weather will warm up for you soon. So sad to see Texas in so such trouble due to the weather. Hopefully lessons will be learned so there is no repeat in the years to come.
Regards,
Terry.