Skip to main content

glTF utilities for Panda3D

Project description

Pipeline License

panda3d-gltf

This project adds glTF loading capabilities to Panda3D. One long-term goal for this project is to be used as a reference for adding a builtin, C++ glTF loader to Panda3D. If and when Panda3D gets builtin support for glTF, this module will go into maintenance mode and be used to backport glTF support to older versions of Panda3D.

Features

  • Adds support for native loading of glTF files
  • Supports glTF 2.0
  • Supports binary glTF
  • Includes support for the following extensions:
    • KHR_lights (deprecated in favor of KHR_lights_punctual)
    • KHR_lights_punctual
    • BLENDER_physics
  • Ships with a gltf2bam cli-tool for converting glTF files to BAM
  • Ships with gltf-viewer for viewing files (including glTF) with a simple PBR renderer

Installation

Use pip to install the panda3d-gltf package:

pip install panda3d-gltf

To grab the latest development build, use:

pip install git+https://github.com/Moguri/panda3d-gltf.git

Usage

Configuration

panda3d-gltf has the following configuration options. See below for information on setting these options for the native loader and the CLI.

  • collision_shapes - the type of collision shapes to build. Either builtin for ColisionSolids or bullet for BulletRigidBodyNodes. Defaults to builtin.
  • flatten_nodes - attempt to flatten resulting scene graph, defaults to False
  • legacy_materials - convert imported PBR materials to legacy materials, defaults to False
  • no_srgb - do not load textures as sRGB textures, defaults to False
  • skip_animations - do not convert animation data found in the glTF file, defaults to False
  • skip_axis_conversion - do not perform axis-conversion (useful if glTF data is already non-standard and already Z-Up), defaults to False

Native loading

panda3d-gltf ships with a Python file loader (requires Panda3D 1.10.4+), which seamlessly adds glTF support to Panda3D's Loader classes. This does not add support to pview, which is a C++ application that does not support loading Python file loaders. Instead of pview, use the gltf-viewer that ships with panda3d-gltf.

The loader can be configured via PRC variables. These PRC variables are prefixed with gltf- but otherwise match the names above. For example, use gltf-collision-shapes bullet to have the loader load Bullet shapes instead of CollisionSolids.

Command Line

To convert glTF files to BAM via the command line, use the supplied gltf2bam tool:

gltf2bam source.gltf output.bam

See gltf2bam -h for more information on usage and available CLI flags.

Viewer

panda3d-gltf ships with gltf-viewer. This is a simple viewer (like pview) to view glTF (or any other file format support by Panda3D) with a simple, PBR renderer.

Running Tests

First install panda3d-gltf in editable mode along with test extras:

pip install -e .[test]

Then run the test suite with pytest:

pytest

Building Wheels

Install build:

pip install --upgrade build

and run:

python -m build

License

B3D 3-Clause

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

panda3d_gltf-1.2.1.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

panda3d_gltf-1.2.1-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

Details for the file panda3d_gltf-1.2.1.tar.gz.

File metadata

  • Download URL: panda3d_gltf-1.2.1.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for panda3d_gltf-1.2.1.tar.gz
Algorithm Hash digest
SHA256 adedf517ecebb635178f09019276b8b023333f727adbdd32591d567e56c4734e
MD5 974aee09e663c0e1b28cfe8fc6aa0b98
BLAKE2b-256 9dbd643c007ccb6efc49c23738df85b3b773468afeeb57551343585b636ff293

See more details on using hashes here.

File details

Details for the file panda3d_gltf-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: panda3d_gltf-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for panda3d_gltf-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d2579153a2ab274824cae8ed86eb99b2b557591527a6c294fef92f2b2165a7cd
MD5 583e8a7aa8616bcc5d9be8a938664728
BLAKE2b-256 2bb0b4b8a7c2231b6de4294c53050eda0784a64f01fdf2b26b8a3531a6d97e9a

See more details on using hashes here.

Supported by

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