Already a Python user? You can install this version of Panda3D with pip!
pip install panda3d==1.10.0
- Ubuntu 18.10 "Cosmic Cuttlefish" (64-bit)
- Ubuntu 18.10 "Cosmic Cuttlefish" (32-bit)
- Ubuntu 18.04 LTS "Bionic Beaver" (64-bit)
- Ubuntu 18.04 LTS "Bionic Beaver" (32-bit)
- Ubuntu 17.10 "Artful Aardvark" (64-bit)
- Ubuntu 17.10 "Artful Aardvark" (32-bit)
- Ubuntu 16.04 LTS "Xenial Xerus" (64-bit)
- Ubuntu 16.04 LTS "Xenial Xerus" (32-bit)
- Ubuntu 14.04 LTS "Trusty Tahr" (64-bit)
- Ubuntu 14.04 LTS "Trusty Tahr" (32-bit)
Release Notes - SDK 1.10.0
This is a major release with significant changes. Please review the
changes when upgrading. The list below is by no means exhaustive, but
should contain the most important changes.
- Experimental ability to build for Android
- New input framework to natively support gamepads, joysticks, etc.
- Multi-threaded render pipeline is a lot more stable now
- New setuptools-based deployment pipeline
- Improvements to mouselook smoothness
- Cache is now at $XDG_CACHE_HOME/panda3d (~/.cache/panda3d), not ~/.panda3d
- Addition of unit test suite
- Many improvements to thread safety
- Many performance improvements
- Tons of bugfixes
- Big style cleanup of C++ source code
- Complete support for Python 3
- Support for coroutines and async/await
- Property interfaces have been added for many settings
- More flexible handling for keyboard arguments in C++ APIs
- Python bindings are completely separated out of the C++ libraries.
- Interrogate binding generator has many improvements.
- Use of pandac.PandaModules is discouraged, use panda3d.core et al
- Use of libRocket is discouraged due to lack of Python 3 support
- Tasks are now sorted in addition order when lacking a sort value
- Fixes iris/fade transitions for extreme aspect ratios
- WeakNodePath is now exposed to Python
- WindowProperties.size(x, y) deprecated; use WindowProperties(size=(x, y))
- Calling bare run() is deprecated, use base.run() instead
- downcastTo*() methods have been removed, they were already no-ops
- Add new shader-based terrain rendering method (ShaderTerrainMesh)
- The default ColorAttrib mode is now T_vertex
- The ColorAttrib T_off mode now properly disables vertex colors entirely
- Make handling of color attributes more consistent between renderers
- Ability to create an OpenGL core profile context; set “gl-version 3 2”
- Experimental support for reverse-Z rendering for best depth precision
- sRGB framebuffers supported more widely
- Support for infinite near/far clip in lens
- Add some PBR material parameters to material class
- Addition of more built-in GLSL shader inputs; see manual.
- Add p3d_FragData GLSL output for MRT in GLSL 1.30
- Add flag enabling vertex shader control over point size
- Support signed ints and double-precision floats in vertex data with GLSL
- Support unsigned 11/10/10-bit floating-point textures and vertex data
- Support for SSBOs via ShaderBuffer class
- Support OpenGL FBO buffers without any attachments
- Support passing uint variables to GLSL shader
- Allow rendering objects with empty vertex data (for vertex pulling)
- Add LogicOpAttrib, for supporting logical operator blending
- Improvements to OpenGL ES support
- Support for geometry with adjacency information
- Change default alpha blending to improve blending rendered result
- New method for obtaining native OpenGL texture object
- Support windowless offscreen rendering on macOS
- Panda resets OpenGL state better before and after draw callbacks
- OpenGL renderer better supports debugging tools like apitrace
- Support fixed-depth billboards, useful for 2D tags that don’t change size
- Significant performance improvements
- Support for point light shadows
- Hardware skinning support
- Changes to match fixed-function pipeline better
- Fixes for normal vector normalization
- Support multiple normal maps (uses Reoriented Normal Mapping)
- Tracks modifications to materials and texture stages automatically
- Allow specifying light color based on color temperature
- Setting specular color of a light separately is deprecated
- New GLSL inputs to make implementing lighting in shaders much easier
- Add representation for sphere light and rectangle light
- Efficiency improvements for passing light information to shader
- Interocular distance for shadow cameras now always defaults to 0
- Add low-level lighting module from RenderPipeline
- Support cube map arrays
- Support buffer textures
- Many more texture formats supported
- BC4 and BC5 compression modes supported
- Proper depth textures supported in DirectX 9 renderer
- set_ram_image(_as) directly supports buffer protocol
- TexturePeeker supports more formats and component types
- Dramatic improvements to text rendering performance
- Support for HarfBuzz for higher-quality text shaping and kerning
- Support for right-to-left text
- Support for signed-distance-field rendering in egg-mkfont
- The default unit for audio is now 1 meter for each Panda unit.
- Native .flac loader
- Support videos with alpha channel in ffmpeg
- OpenAL stability improvements, especially on macOS
- Support loading .opus files with libopusfile
- Fix various memory leaks
Physics / collisions
- CollisionTube is renamed to CollisionCapsule.
- Box-box collision test is improved to work well with the Pusher
- More box tests for collision system: box-into-plane, box-into-poly
- Capsule (tube) can be used as “from” shape into plane, sphere, capsule, box
- Bullet objects are serializable to .bam files.
- Bullet bindings are now thread safe.
- Bullet debug drawer is more efficient; no longer inherits GeomNode.
- Various fixes to bullet vehicle wheel synchronization
- PhysX bindings are deprecated.
Pipeline / loading
- Support for Assimp library to load a broad variety of model formats
- Ability to specify min-lod, max-lod, lod-bias in .egg file
- Egg file materials support PBR-style material parameterization
- Support loading more DDS files, including DX10-style ones
- Add support for OpenEXR and HDR textures
- Support line/point thickness in bam2egg
- bam2egg no longer inserts a vestigial ModelNode at the top
- bam2egg supports depth test, offset, cull bin attributes
- Accept a .gz file wherever a .pz file is accepted
- egg-palettize supports mirror and border-color wrap modes
- More robust checks against memory corruptions when loading bad .bam files
- Support for Maya 2017 and 2018
- Support preprocessing GLSL shaders created with Shader.make
- We now require using MSVC 2015 or 2017 to compile on Windows.
- At least GCC 4.8 is now required.
- With GCC/clang, enabling C++11 is now required.
- Allow building with more recent ffmpeg versions
- Support for old FFMpeg versions (before 1.1) dropped.
- The ppremake build system has been removed.
- Support for OpenSSL versions before 0.9.7 has been dropped.
- Use of NULL is replaced with nullptr
- WeakPointerTo now requires use of lock() method for thread safety
- Mutex et al now satisfy C++11 Lockable constraints
- Panda headers no longer contain `using namespace std;`
- PN_int32 et al have been removed, use stdint.h types instead
- The need to link with pystub and add Python include dirs is removed.