Already a Python user? You can install this version of Panda3D with pip!

pip install panda3d==1.10.13

Other Downloads

Release Notes - SDK 1.10.13

This is a significant release containing many important bug fixes and a couple of interesting new features. See the official announcement for an overview.

Rendering

  • Fix single texture stage limit when gl-version 3 2 or higher is set (#1404)
  • Fix some render-to-texture bugs with multithreaded pipeline (incl. #1364)
  • Fix failure to unset divisor after rendering with hardware instancing
  • Add “MSAA” filter to CommonFilters class as convenience to enable MSAA
  • Fix multisample FBOs with MRT resolving aux target into color target
  • Fix shader generator not responding to fog color changes
  • Fix OpenGL error when downloading GL_LUMINANCE8 texture

Windowing

  • Fix incorrect “without” event generation when mouse leaves window (#1400)
  • Windows: Fix lost “up” events when dragging cursor outside window while multiple mouse buttons are pressed down (#1396)
  • macOS: Fix crash with threading-model on newer macOS versions (#1286)
  • macOS: Fix black screen when going fullscreen on Apple M1-based macs (#1316)
  • macOS: Fix window overlapping Dock when requesting very large height
  • macOS: Improve application termination handling, now sends proper exit events
  • X11: tinydisplay handles window resizes more efficiently
  • X11: Work around window not rendering at first on swaywm (#1087)

Deployment

  • Not all code was being built with optimize level 2
  • Add keep_docstrings option to switch to optimize level 1 (#1341)
  • Add prefer_discrete_gpu option to force dedicated GPU on Windows (#680)
  • Add bam_model_extensions for converting non-egg models to .bam (#714)
  • Work around autodiscovery error when using setuptools>=61.0.0 (#1394)
  • Default Linux target to manylinux2014_x86_64 on Python 3.11+

PStats

  • Add support for Python profiling with pstats-python-profiler Config.prc var
  • Fix PStats crash at launch from pip installs in newer Linux distros (#1391)
  • Performance improvements to time-based strip chart views
  • Time-based strip charts now can show start/stop count in corner of graphs
  • Optimize client performance when sending a large number of samples
  • Fix dropped frames by changing value for pstats-max-queue-size from 1 to 4
  • Server accept clients using PStats protocol version 2.3

Assimp

  • Fix assertion when loading meshes with multiple primitive types
  • Add assimp-collapse-dummy-root-node option to remove root node (see #366)
  • Import custom object properties as tags
  • Add support for additional texture maps, including PBR textures
  • Support reading tangent and binormal vectors
  • Improve performance when loading geometry
  • Fix problems reading external files (see #366)
  • Support reading alpha mode when loading .glTF models
  • Add support for texture transforms
  • Add support for texture wrapping modes
  • Fix memory corruption bugs

Build

  • Fixes to pview.desktop file on Linux
  • makepanda: Fix problems when building on arm64 on macOS without --arch flag
  • makepanda: Fix detection issues with newer macOS / XCode versions
  • makepanda: Fix motiontrail header files not being copied
  • Windows: Fix HTTPClient not working when nativenet module is disabled
  • macOS: Fix OpenCV library refusing to load in arm64 build (#1393)
  • Fix compiler error when compiling for e2k (MCST Elbrus 2000) (#1367)

Miscellaneous

  • Add new motion trails sample program
  • MotionTrail.add_vertex() method now directly accepts a vertex position
  • Significant performance optimization of C++-based motion trail implementation
  • Fix race condition when destructing/constructing NodePaths in thread (#1366)
  • Add implementation of capsule-into-polygon collision test (#1369)
  • Fix texture transforms sometimes not being flattened (#1392)
  • Fix support for #pragma include <file.glsl> in GLSL shaders
  • Fix ShaderBuffer.prepare() not doing anything
  • Implement deepcopy for PointerToArray
  • Fix Texture deepcopy keeping a reference to the original RAM image
  • Fix bf-cbc encryption no longer working when building with OpenSSL 3.0
  • PandaNode bounds_type property was erroneously marked read-only
  • Fix warnings when copying OdeTriMeshGeom objects
  • Fix a crash when using Notify.set_ostream_ptr() from Python (#1371)
  • Fix GarbageReport not working with Python 3 (#1304)
  • Make mat.cols[n] and mat.rows[n] assignable
  • Fix ExecutionEnvironment.args being empty on Linux
  • Add various useful functions to interrogatedb module
  • Fix Python 3 issues unpacking uint types in Python 3 (#1380)
  • Fix interrogate syntax error with C++11-style attributes in declarators
  • Fix double-precision color values not being clamped by GeomVertexWriter
  • Fix regression with BufferViewer in double-precision build (#1365)
  • Fix PandaNode.nested_vertices not updating properly
  • Prevent Panda calculating bounding volume of Geom with custom bounding volume
  • Add do_events() and process_event() snake_case aliases in eventMgr
  • Support second arg of None in replace_texture() / replace_material()
  • Support os.fspath() for ConfigVariableFilename objects (#1406)
  • rplight: Fix PSSM calculation failing with infinite far distance (#1397)
  • Remove spurious print in direct.showutil.Effects.createBounce() (#1383)
  • Fix assorted compiler warnings