CloudCompare / CloudCompare

CloudCompare main repository
Other
3.43k stars 1.02k forks source link

Compute/show mesh normals automatically, or by option #1813

Closed nonbasketless closed 7 months ago

nonbasketless commented 1 year ago

Describe the feature you would like I load PLY meshes and point clouds very frequently. The meshes lack normals since they are implied.

CloudCompare won't show mesh normals unless I click mesh and then go Edit->Normals->Compute->Face.

For point clouds, related, if normals are present they aren't used unless I check the box.

Obviously not a huge problem by an stretch, but in years of working on 3D stuff I don't think I've ever not wanted normals. I think it would make sense to either have them computed/shown by default, or an option to make that a default.

Describe alternatives you've considered Manual steps described above. Though meshlab doesn't have this problem, I don't see it as an alternative ;)

Is your feature request related to a problem? Please describe. Nope.

Additional context None.

rjanvier commented 1 year ago

For point cloud, "show normals" used to be the default behavior. But since it could requires "a lot" of extra GPU power to display normals it was decided that they should be disabled by default to keep an efficient rendering a load time (But I guess it was before the LOD implementation). My personal opinion is that it should remain disabled and using a shader like EDL is far more efficient than using normals to render point cloud/mesh.

nonbasketless commented 1 year ago

I remember that! Was surprised it changed.

I wonder if you and I have different use cases. Almost all my data is under 100 mb and normals don't make anything noticeably slower.

However, I didn't know about EDL and that might do the trick for me! Tested on meshes so far. Much nicer to have normals with one click indeed.

rjanvier commented 1 year ago

:sweat_smile: In fact there is an option in display > display settings "Automatically display normals..." it should be what you are looking for.