isl-org / isl-org/Open3D

Spurious Self Intersection Reported for Mesh

Open
#5,525 3 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

I want to generate signed distance fields for a set of YCB objects using open3d's `RaycastingScene()`; however, one of the requirements is that the input mesh is watertight. I am able to satisfy all conditions of watertightness except for it being non-intersecting. I am testing with a Blender QuadriFlow remeshed mesh from the high-poly scan of a YCB mustard bottle that I then triangulate. The remeshing ensures that the mesh is closed, which I further confirm with `V + F - E = 2` (V = 314, E = 936, F = 624). The image below shows me viewing it in Blender (3.2) with surface orientations on to check if any normals are flipped.

After loading the mesh, I see that there are 3284 pairs of intersecting triangles according to o3d
```
len(np.asarray(mesh.get_self_intersecting_triangles()))
```
The mesh in `.obj` format is included: https://pastebin.com/nfVApbvx

![Selection_035](https://user-images.githubusercontent.com/5508542/190509921-8939c03d-dbb2-4d53-a4e6-6efff6d7723e.png)

Possibly related issue to #5117

### Steps to reproduce the bug

```python
import open3d as o3d
import numpy as np

mesh = o3d.io.read_triangle_mesh("remeshed.obj")
print(len(np.asarray(mesh.get_self_intersecting_triangles())))
```

### Error message

_No response_

### Expected behavior

It should not have any self-intersecting triangles

### Open3D, Python and System information

```markdown
- Operating system: Ubuntu 20.04
- Python version: Python 3.9 / output from `import sys; print(sys.version)`
- Open3D version: output from python: 1.5.2
- System architecture: x86
- Is this a remote workstation?: no
- How did you install Open3D?: pip
```

### Additional information

_No response_

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.