Open3D icon indicating copy to clipboard operation
Open3D copied to clipboard

Add normal related functions to PointCloud and TriangleMesh

Open yuecideng opened this issue 3 years ago • 3 comments

  1. Add NormalizeNormals for both Tensor PointCloud and TriangleMesh.
  2. Add normal orientation functions for Tensor PointCloud.
  3. Add triangle and vertex normals computation for Tensor TriangleMesh.

This change is Reviewable

yuecideng avatar Jul 11 '22 07:07 yuecideng

Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes.

update-docs[bot] avatar Jul 11 '22 07:07 update-docs[bot]

Sure, I will test it and update.

Update:

I use ArmadilloMesh to test the performance of vertex and triangle normals computation with and without normalization. The reuslts are as follow: With normalization:

image

Without normalization:

image

The new tensor implementation is not good in CPU. I also test the performce of two normals orientation fucntions for PointCloud:

image

I think it would be better to implement these functions in kernel currently @reyanshsolis @yxlao

yuecideng avatar Aug 19 '22 14:08 yuecideng

By implementing these fucntions in kernel, the performance has lots of gain: With normalization: image

PointCloud functions: image

yuecideng avatar Aug 23 '22 11:08 yuecideng