tcobbs/ldview

Curve smoothing causes a shading error on part 88293

Closed this issue · 1 comments

The root cause of the problem here is that the part uses a torus primitive for the curved section, and that torus primitive includes conditional lines at its edge so that if it is placed against another torus the two will smooth together. The only way to fix this was to either decrease the max angle for smoothing (which would almost certainly result in other parts not being smoothed when they should), or to update the code to not smooth edges that are coincident with an edge line. I chose the latter solution, and then in fact increased the max smooth angle.

This should be fixed in this commit:

98e83ee

Note that it only looks perfect if primitive substitution is enabled. Since smoothing doesn't happen across parts, the surface normals at the join point slightly outward if primitive substitution is disabled.

@alex-taylor if you let me know what platform you are running on, I will provide you with a test build.