Panda3D 1.10 Migration Notes
This document attempts to collect the potentially breaking changes in 1.10, to assist in upgrading existing codebases.
- The default unit is now assumed to be 1 metre for each Panda unit. Using a different unit can be accomplished by setting a scale on the AudioManager.
- The runtime distribution, web plug-in, pdeploy and all related matters have been removed and are no longer supported. The new deployment path is deploy-ng.
- packpanda and eggcacher have been removed. You can still invoke the eggcacher using python -m direct.directscripts.eggcacher.
- The default location for the config files on Linux and FreeBSD is now $XDG_CONFIG_HOME/panda3d, where $XDG_CONFIG_HOME defaults to ~/.config.
- The default location for the model-cache on Linux and FreeBSD is now $XDG_CACHE_HOME/panda3d, where $XDG_CACHE_HOME defaults to ~/.cache. The previous location was ~/.panda3d/cache.
- The ppremake build system and genPyCode have been removed.
- win-extras (smartroom/BeyondQuestion, serial, JOD, phidgets) have been removed from the Windows SDK.
- bam2egg no longer inserts a vestigial extra root group representing the ModelNode, in order for the bam2egg and egg2bam commands to become reversible.
- Support for Autodesk Maya versions below 5.0 has been dropped.
- Calls to run() should be replaced with base.run(). Not doing this causes a deprecation warning.
- pandac.PandaModules has been deprecated (but not removed). It is easily replaced by importing from panda3d.core, panda3d.egg, etc.
- The vestigial DisplayRegionBase class has been removed.
- The temp-hpr-fix and empty-node-path Config.prc settings have been removed.
- The direct.http and direct.extensions packages have been removed.
- Python classes that inherit from NodePath (or Actor) should not define members named name, children, sort, or parent. This can result in cryptic errors.
- Dual inheriting from FSM and PandaNode will give cryptic errors. But inheriting Python classes from PandaNode is probably a bad idea to begin with.
- downcastTo*() methods have been removed, as they are deprecated and completely unnecessary.
- Exposed actor joint nodes now are parented to the Character node that is a child of the root actor node. See .
- CollisionTube has been renamed to CollisionCapsule, but an alias remains for compatibility.
- get_config_showbase() is no longer available from panda3d.direct; you can replace it with from direct.showbase import DConfig as config
- The behaviour of the p3d_Color vertex attribute input has changed. This input now defaults to the ColorAttrib-specified color if an explicit color has been specified on the model.
- The default ColorAttrib mode is now T_vertex, to make the behaviour of the shader generator and fixed-function pipeline consistent. Note that set_color_off applies a ColorAttrib with T_vertex mode.
- The ColorAttrib mode T_off now actually disables vertex colors in the fixed-function pipeline.
- When opening an offscreen buffer, if you don’t request any specific colour bits, you may end up getting a framebuffer that only renders the red channel. You must make sure to explicitly request a certain number of framebuffer bits in each channel using something like set_rgba_bits(8, 8, 8, 0). (This call is also available in 1.9.)
- The default alpha blending mode for M_alpha has changed. This has been done to avoid squaring the alpha value so that the result of rendering can be blended as a premultiplied texture. To restore the old mode, enable the old-alpha-blend Config.prc variable.
- The shader generator now supports multiple normal maps. If you had multiple normal maps applied to a model and expected only one of them to take effect, you may notice a change in behaviour.
- The default interocular distance for shadow cameras is now 0. If you were relying on the default IOD to apply to shadow cameras, you must now set their IOD explicitly.
- Matrix palette-based vertex blending has been removed. Instead, hardware vertex animation is implemented via the shader generator, or with custom shaders.
- The ShaderGenerator behaviour for the M_blend TextureStage mode changed to be consistent with the fixed-function pipeline.
- Support for OpenSSL versions before 0.9.7 has been dropped.
- At least ffmpeg 1.1 (or libav 9.20) is required. (libavcodec must be 54.35.1, libavformat 54.20.4, libavutil 52.3.0)
- At least GCC 4.8 is now required to compile Panda3D (or equivalent clang version). On Windows, using a compiler older than MSVC 2015 is deprecated.
- PhysX is deprecated and not enabled by default.
- libRocket is deprecated and not provided for Python 3 builds.
- FFTW is deprecated and not enabled by default.
- We have switched the codebase to enable C++11 features. On Linux / macOS, you should now add the -std=gnu++11 flag to compile correctly.
- The following header files have been renamed, so any #include statements will need to be replaced:
- config_util.h → config_putil.h
- config_pstats.h → config_pstatclient.h
- config_pfm.h → config_pfmprogs.h
- collisionTube.h → collisionCapsule.h