Oh! I've played with a similar workflow as a way to use TLS.laz as control for MLS in RiProcess. I found the same thing initially. flat planes are easy, vertical plans are trickier.
Are using Aerial LiDAR?
Some tips that might help.
- polygon_distance 20 will limit the the planes that are kept and might be dropping vertical planes if they are near (within 20m) a flat plane. ****it would be an excellent improvement if this argument could consider plane orientation before filtering :) *****
-Split point cloud into ground and non-ground laz files then use lasplane settings tailored to each.
-cell_points (minimum number of points to be a valid plane) is set to 100 by default. If you don't have that many points on 'vertical surface' in a 1x1x1m cell_size you need to change either the cell_size or the cell_points. if this is aerial LiDAR I assume you get far less points on a vertical surface than you do on flat surface.
-settings are probably good for flat planes, but vertical planes might need to play round with cell size and the other settings. I figured it out settings by testing settings visualising the .shp instead of .pef.
I ended up with a workflow that would
-classify ground
-classify height above ground - mainly class 4 is 0.2m to about 10m above ground - where building walls would be (used later)
-Split ground (class 2) and non-ground (class 4)
-classify (or remove) noise on ground points with a flatter step dimensions (eg -step_xy 1.0 -step_z 0.1)
-classify (or remove) noise on non-ground points with a taller step dimensions (eg -step_xy 0.2 -step_z 0.6)
you can use "-output_marked_point_cloud" to see what points are getting used (valid planes are class 8 I think). I ended up using this to collect lots of planes with a small cell size then merge at the end to get a larger pef plane output. Not ideal, but it worked to get a decent size plane on thinner structures
Hope that helps!