Skip to main content

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:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open3d_four_view-0.0.1.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

open3d_four_view-0.0.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

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

Hashes for open3d_four_view-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b04dfd5616f36c231f8edb940d5c4a1f820bf8dfeec3524c57259009deefe87c
MD5 9a9dfd5aaa572dcdef92e3d245daba86
BLAKE2b-256 5c358a11d3682d08f8fb7e26f941e4fa67cfbe616845c34a7c1c03a87ada765e

See more details on using hashes here.

File details

Details for the file open3d_four_view-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for open3d_four_view-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 53de5f824cf12032e0032a27ca1f4666fb2b4ff36d89502a9fb2a7507fbbe36c
MD5 8949f5cd4c74cb80738b410648289b99
BLAKE2b-256 ebb1b0d881ac01bb95e07f180795b21b76c3c0d7d6ab85407fe1601c3d0fefca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page