Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

A tool to convert Blender blend files to Panda3D BAM files

Project description

Pipeline Python Versions Panda3D Versions License

blend2bam

blend2bam is a CLI tool to convert Blender blend files to Panda3D BAM files. It also supplies a Python file loader to add "native" blend file support to Panda3D.

Installation

Use pip to install the panda3d-blend2bam package:

pip install panda3d-blend2bam

blend2bam also requires that Blender is installed. Ideally blender is available on the system PATH. However, if it's not, the directory containing blender can be specified with --blender-dir (see CLI usage).

Usage

CLI

usage: blend2bam [-h] [--version] [-m {legacy,pbr}] [--physics-engine {builtin,bullet}] [--srcdir SRCDIR]
                 [--blender-dir BLENDER_DIR] [--append-ext] [--pipeline {gltf,egg}]
                 [--no-srgb] [--textures {ref,copy,embed}]
                 src [src ...] dst

CLI tool to convert Blender blend files to Panda3D BAM files

positional arguments:
  src                   source path
  dst                   destination path

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -m {legacy,pbr}, --material-mode {legacy,pbr}
                        control how materials are exported
  --physics-engine {builtin,bullet}
                        the physics engine to build collision solids for
  --srcdir SRCDIR       a common source directory to use when specifying multiple source files
  --blender-dir BLENDER_DIR
                        directory that contains the blender binary
  --append-ext          append extension on the destination instead of replacing it (batch mode only)
  --pipeline {gltf,egg}
                        the backend pipeline used to convert files
  --no-srgb             do not load textures as sRGB textures (only for glTF pipelines)
  --textures {ref,copy,embed}
                        how to handle external textures
  --animations {embed,separate,skip}
                        how to handle animation data

Python File Loader

blend2bam also supports Panda3D's Python file loader API (requires Panda3D 1.10.4+) to seamlessly adds blend file support to Panda3D's Loader classes. This does not add support to pview, which is a C++ application that does not support Python file loaders.

Pipelines

blend2bam has support for multiple backend "pipelines." Currently, gltf and egg are supported. For Blender 2.7x, gltf uses blendergltf and panda3d-gltf while egg uses YABEE and egg2bam from the Panda3d SDK. For Blender 2.8+, only gltf is supported uses the glTF exporter built into Blender 2.8+ instead of blendergltf. The below table hightlights some of the differences.

Feature glTF (2.7x) EGG (2.7x) glTF (2.8+)
Static Meshes :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Textures :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Multiple Diffuse Textures :x: :heavy_check_mark: :x:
Legacy Materials :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:2
PBR Materials :heavy_check_mark: :x: :heavy_check_mark:
Lights :heavy_check_mark: :x: :heavy_check_mark:
Skinned Meshes :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Skeletal Animations :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Shape Keys :x: :heavy_check_mark: :heavy_check_mark:
Shape Key Animations :x: :heavy_check_mark: :heavy_check_mark:1
Object Animations :x: :x: :x:
CollisionSolids :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Bullet Shapes :heavy_check_mark: :x: :heavy_check_mark:
Tags from Game Properties :heavy_check_mark: :heavy_check_mark: :x:
Tags from Custom Properties :heavy_check_mark: :x: :heavy_check_mark:
Convert Particle Systems to Meshes :heavy_check_mark: :x: :heavy_check_mark:
Separate Animation Files :heavy_check_mark: :x:3 :heavy_check_mark:

1 Shape key animations require Panda3D 1.10.6.

2 Only supports diffuse color (factor and map pulled from base color) and normal maps. Requires panda3d-gltf >= 0.9.

3 Supported by EGG, but not implemented in blend2bam

License

MIT

Project details


Download files

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

Files for panda3d-blend2bam, version 0.17
Filename, size File type Python version Upload date Hashes
Filename, size panda3d_blend2bam-0.17-py3-none-any.whl (9.2 MB) File type Wheel Python version py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page