Given this roof structure:


I get the following output for the normalx, after using:


point normalx

(orange to purple : -1 to 1)

Comparable situation for normaly and normalz.

Where I was expecting homogeneous colored roofplanes, I get a mixed-up situation, where the values appear to be sometimes flipped to the negative.

It seems to me there are some artifacts here based on the laser scan-line, considering the flipping of the normal on the same roof plane.

I cannot wrap my head around what happens here. Ideas?

The purpose of this work is to get the slope and aspect from the roofplanes. I can get the slope correct by taking the absolute values of normalz (slope will never pass the 90 degrees) but this is not an option for calculating the aspect it seems.

The resulting point set can be downloaded here.


After all, it made sense. A flat plane can have 2 normals. In this case, the slight wobble of the rotating sensor made some points a little above and some points below the average plane. Hence the kind of artifacts you see.


Since we know a roof always has an upward pointing normal, we can check that whenever the normalz is negative, we flip the normalx and normaly. if normalz < 0 { normalx = -1 * normalx,normaly = -1 * normaly }

The resulting aspect atan2d(normaly,normalx) now looks like this: enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.