Preview window opens via OpenGL and closes without error code (using x-server)
- 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](https://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](https://www.open3d.org/docs/release/) and the [latest documentation](https://www.open3d.org/docs/latest/) (for `main` branch).
### Steps to reproduce the issue
#### I first used Open3D in OpenPCDet:
```
pip install open3d
```
#### Then, I tried the new O3DVisualizer instead of Visualizer:
```
visualizer_test.py
```
#### Source Code
```python
import open3d
from tools.visual_utils import open3d_vis_utils_O3D as O3DVisualizer
def main(mode=str):
logger = common_utils.create_logger()
if mode == 'raw':
logger.info('-----------------Quick Visualizer Demo of data-------------------------')
logger.info(f'Mode for visualization: {mode}')
demo_dataset = DemoDataset(dataset_cfg=dataset_cfg, class_names=class_names, training=False, root_path=data_path, logger=logger, data_processor_flag=False, fov_mode=False)
logger.info(f'Total number of samples: \t{len(demo_dataset)}')
data_dict = demo_dataset[2]
points = data_dict['points']
gt_boxes = data_dict['gt_boxes']
O3DVisualizer.draw_demo_scenesO3D(points=points, gt_boxes=gt_boxes, point_colors=None, draw_origin=True)
logger.info('Demo visualization of data done.')
```
```python
def draw_demo_scenesO3D(points, gt_boxes=None, gt_names=None, ref_boxes=None, ref_labels=None, ref_scores=None, point_colors=None, draw_origin=True):
if isinstance(points, torch.Tensor):
points = points.cpu().numpy()
if isinstance(gt_boxes, torch.Tensor):
gt_boxes = gt_boxes.cpu().numpy()
if isinstance(ref_boxes, torch.Tensor):
ref_boxes = ref_boxes.cpu().numpy()
app = open3d.visualization.gui.Application.instance
app.initialize()
vis = open3d.visualization.O3DVisualizer('Open3D - O3DVisualizer', 640, 480)
vis.show_settings = True
vis.point_size = 1
vis.set_background((0, 0, 0, 1), None) # RGBA
# draw origin (x = Forward, y = Left ,z = Upward)
if draw_origin:
axis_pcd = open3d.geometry.TriangleMesh.create_coordinate_frame(size=1.0, origin=[0, 0, 0])
vis.add_geometry('axis', axis_pcd)
pts = open3d.geometry.PointCloud()
pts.points = open3d.utility.Vector3dVector(points[:, :3]) # x, y, z
if point_colors is None:
pts.colors = open3d.utility.Vector3dVector(np.ones((points.shape[0], 3)))
else:
pts.colors = open3d.utility.Vector3dVector(point_colors)
vis.add_geometry('points', pts)
if gt_boxes is not None:
vis = draw_demo_boxO3D(vis, gt_boxes, keypoint_color=(0, 0, 1))
app.add_window(vis)
app.run
def draw_demo_boxO3D(vis, gt_boxes, ref_labels=None, keypoint_color=(0, 0, 1)):
for i in range(gt_boxes.shape[0]):
line_set, box3d, middle_diagonal = translate_boxes_to_open3d_instanceO3D(gt_boxes[i], use_custom_diagonal_color=False)
vis.add_geometry('line_set_' + str(i), line_set)
class_idx = int(gt_boxes[i, 7])
bbox_color = box_colormap[class_idx]
# Add object keypoint
center = gt_boxes[i, :3]
size = gt_boxes[i, 3:6]
keypoint = create_bbox_keypoint(class_idx, center, size, color=keypoint_color)
vis.add_geometry('keypoint_' + str(i), keypoint)
# Add object arrow
heading = gt_boxes[i, 6]
arrow = create_bbox_arrow(class_idx, middle_diagonal, heading, cylinder_r=0.015, cone_r=0.045, cylinder_h=0.5, cone_h=0.2, color=bbox_color)
vis.add_geometry('arrow_' + str(i), arrow)
# Add object label
return vis
```
#### Terminal output
```txt
2024-11-11 20:46:43,515 INFO -----------------Quick Visualizer Demo of data-------------------------
2024-11-11 20:46:43,515 INFO Mode for visualization: raw
PointFeatureEncoder: absolute_coordinates_encoding() called with no points. Number output features: 4
DataProcessor: mask_points_and_boxes_outside_range() called with no data_dict
DataProcessor: shuffle_points() called with no data_dict
2024-11-11 20:46:43,515 INFO DemoDataset: Loading raw KITTI dataset
2024-11-11 20:46:43,515 INFO Total number of samples: 5
DemoDataset: __getitem__ called
DatasetTemplate: prepare_demo_data() called
PointFeatureEncoder: absolute_coordinates_encoding() processed 122798 points. Point features shape: (122798, 4)
FEngine (64 bits) created at 0x7f503003c010 (threading is enabled)
FEngine resolved backend: OpenGL
2024-11-11 20:46:51,999 INFO Demo visualization of data done.
```
### Error message
```shell
No error message appeared, when executing the code, preview window opens and closes.
```
### Open3D, Python and System information
```markdown
- Operating system: Windows 10 64-bit --> SSH and VcXsrv (X-Server) to Ubuntu 20.04
- Python version: Python 3.8.19
- Open3D version: output from python: 0.18.0
- System architecture: x86 / arm64
- Is this a remote workstation?: yes
- How did you install Open3D?: pip
```
### Additional information

Thank you for your help!
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.