Render PCD point clouds into a single Open3D four-view merge PNG.
Project description
open3d-four-view
Render one PCD into a single 2x2 four-view PNG with Open3D. The package renders top, front, right, and oblique views in memory, then writes only the final merge image.
Python API
from open3d_four_view import render_pcd_merge_view
render_pcd_merge_view(
"input.pcd",
output_path="output.png",
title="merge-view",
overlay_info={
"Viewpoint": "Merged four views",
"car_model_id": "CAR001",
"branch": "main",
"commit": "abc123",
"soc": "soc2",
},
color_legend={
"at128p_front": {"rgb": [255, 0, 0]},
"lidar_right": {"rgb": [0, 255, 0]},
},
gpu=True,
)
output_path has the highest priority and is used exactly. Without output_path, the default single-file output is <input_dir>/<base>_merge.png. With output_dir, the output is <output_dir>/<base>_merge.png.
gpu=True requests GPU graphics rendering through Open3D OffscreenRenderer when available. It does not enable Open3D CUDA tensor point-cloud processing.
CLI
open3d-four-view --input_path input.pcd --output_path output.png
open3d-four-view --input_path input.pcd --output_path output.png --gpu
open3d-four-view --input_dir pcds --output_dir out --title merge-view
open3d-four-view --input_dir pcds --output_dir out --gpu
Overlay and legend data can be passed as JSON:
open3d-four-view \
--input_path input.pcd \
--output_path output.png \
--overlay-json '{"car_model_id":"CAR001","branch":"main","commit":"abc123","soc":"soc2"}' \
--color-legend-json '{"at128p_front":{"rgb":[255,0,0]}}'
--coverage defaults to 1.0, meaning full point-cloud range. Values must be from 0 to 1.
Rendering Backend Notes
Four-view rendering uses Open3D OffscreenRenderer with OpenGL/EGL graphics rendering. The --gpu flag asks Open3D to prefer GPU graphics rendering where the runtime supports it. It is intentionally not a CUDA tensor pipeline and does not run CUDA voxel/downsample operations.
When --gpu is used, the package removes known software-rendering environment variables such as LIBGL_ALWAYS_SOFTWARE=true, OPEN3D_CPU_RENDERING, and MESA_LOADER_DRIVER_OVERRIDE=llvmpipe/softpipe before importing Open3D. It keeps EGL_PLATFORM=surfaceless because that can be valid for headless EGL GPU rendering. If GPU rendering cannot be confirmed, a RuntimeWarning is emitted and rendering continues with the Open3D backend available in the current environment.
In current validation environments, Open3D 0.19.0 with CUDA 12.1 can use GPU rendering. On RTX 50 / Blackwell GPUs, avoid Open3D CUDA tensor point-cloud batch processing unless you are using a CUDA/Open3D build that explicitly supports Blackwell.
References:
- Open3D Tensor: https://www.open3d.org/docs/latest/tutorial/core/tensor.html
- Open3D CPU/Software Rendering: https://www.open3d.org/docs/latest/tutorial/visualization/cpu_rendering.html
- NVIDIA Blackwell Compatibility Guide: https://docs.nvidia.com/cuda/blackwell-compatibility-guide/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open3d_four_view-0.0.1.tar.gz.
File metadata
- Download URL: open3d_four_view-0.0.1.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b04dfd5616f36c231f8edb940d5c4a1f820bf8dfeec3524c57259009deefe87c
|
|
| MD5 |
9a9dfd5aaa572dcdef92e3d245daba86
|
|
| BLAKE2b-256 |
5c358a11d3682d08f8fb7e26f941e4fa67cfbe616845c34a7c1c03a87ada765e
|
File details
Details for the file open3d_four_view-0.0.1-py3-none-any.whl.
File metadata
- Download URL: open3d_four_view-0.0.1-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53de5f824cf12032e0032a27ca1f4666fb2b4ff36d89502a9fb2a7507fbbe36c
|
|
| MD5 |
8949f5cd4c74cb80738b410648289b99
|
|
| BLAKE2b-256 |
ebb1b0d881ac01bb95e07f180795b21b76c3c0d7d6ab85407fe1601c3d0fefca
|