isl-org / isl-org/Open3D

The vertices are redundant when loading a triangle mesh from stl file

Open
#6,450 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

### Checklist

- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).

### Describe the issue

When I tried to load a model(.stl file) by function o3d.io.read_triangle_mesh() and check its watertightness by funcition is_watertight(), unexpectedly getting "False" as a result, because my model which was generated by Marching Cubes algorithm is supposed to be a closed surface mesh. By further check on the mesh, I noticed that o3d seemed to believe the mesh has boundary edges. But when I loaded the model by VTK, this phenomenon disappeared. I found that the number of vertices in the mesh is different for the same model loaded by different IO functions (VTK has a much smaller number). So, I think there must be something wrong when o3d loading a .stl file, it cannot well merge the duplicate vertices.

### Steps to reproduce the bug

```python
import open3d as o3d
import numpy as np
import vtkmodules.all as vtk

filename = 'model.STL'

# load by o3d
mesh = o3d.io.read_triangle_mesh(filename)
mesh.compute_vertex_normals()
print("o3d vertex num:", np.asarray(mesh.vertices).shape[0]) # output 903836

# load by VTK
reader = vtk.vtkSTLReader()
reader.SetFileName(filename)
reader.Update()
print("vtk vertex num:", reader.GetOutput().GetNumberOfPoints()) # output 175772
```

### Error message

_No response_

### Expected behavior

_No response_

### Open3D, Python and System information

```markdown
- Operating system: Windows 11 64-bit
- Python version: Python 3.9
- Open3D version: 0.17.0
- VTK version: 9.1.0
- System architecture: x64
- Is this a remote workstation?: no
- How did you install Open3D?: pip
```

### Additional information

the test model link: [https://github.com/Amble12345/123/blob/main/model.zip](url)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.