This document attempts to collect the potentially breaking changes in 1.10, to assist in upgrading existing codebases.
Audio
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.
Distribution
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.
Model pipeline
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.
Python API
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 #221.
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
Rendering
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.
Dependencies
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.
C++
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:
Audio
Distribution
Model pipeline
Python API
Rendering
Dependencies
C++