Panda3D 1.10.0

Milestone information

Project:
Panda3D
Series:
1.10.x
Version:
1.10.0
Released:
2019-01-02  
Registrant:
rdb
Release registered:
2019-01-10
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
16 rdb
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
18 Fix Released

Download files for this release

File Description Downloads

Release notes 

This is a major release with significant changes, featuring first-class Python 3 support, support for gamepads and joysticks, a new deployment system, an improved shader generator, OpenGL core profile support, an experimental Android port, and much more!

See http://www.panda3d.org/blog/sdk-1-10-0-release/

Changelog 

View the full changelog

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.

General
* 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

Python API
* 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

Rendering
* 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

Shader generator
* 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

Lighting
* 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

Textures
* 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

Text
* 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

Audio/video
* 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

Build
* 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.

C++
* 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.

0 blueprints and 18 bugs targeted

Bug report Importance Assignee Status
1500026 #1500026 Mouse input doesn't work in fullscreen mode on macOS 3 High rdb  10 Fix Released
696269 #696269 downloader does not support IPv6 1 Undecided rdb  10 Fix Released
1024134 #1024134 Fix some warning 1 Undecided   10 Fix Released
1114095 #1114095 "basic-shaders-only 0" disables vertex colors 1 Undecided rdb  10 Fix Released
1202448 #1202448 Deadlock when creating geometry in worker thread 1 Undecided rdb  10 Fix Released
1212752 #1212752 Crash when automatic shadows and multithreading are both enabled 1 Undecided rdb  10 Fix Released
1429241 #1429241 (Usability) VFS should emit warning for Windows-native absolute path 1 Undecided rdb  10 Fix Released
1560283 #1560283 Particles samples do not work with Python3 1 Undecided rdb  10 Fix Released
1617834 #1617834 bam2egg does not export non-GeomNodes under Character 1 Undecided rdb  10 Fix Released
1620397 #1620397 Bam2Egg Fails To Convert Things In .Bam 1 Undecided rdb  10 Fix Released
1624810 #1624810 Depth Offset Still Doesn't Transfer Over 1 Undecided rdb  10 Fix Released
1636717 #1636717 fatal error building on osx assimp/scene.h file not found 1 Undecided rdb  10 Fix Released
1650372 #1650372 MovieTextures: Support for alpha channel RGBA and other color formats 1 Undecided   10 Fix Released
1672089 #1672089 Not calling setShadowCaster(False) on a light that is removed from render and then removed with removeNode() will lead to buffer leak 1 Undecided rdb  10 Fix Released
1672560 #1672560 setShadowCaster(True, new_res, new_res) on an existing light can break shadow cameras for other lights (the shadow cameras get stuck and stop updating) 1 Undecided rdb  10 Fix Released
1675745 #1675745 Font Kerning support 1 Undecided rdb  10 Fix Released
1687283 #1687283 Segmentation Fault using VFS + wezu's deferred renderer in loader.load_model 1 Undecided rdb  10 Fix Released
1698451 #1698451 premunge_scene doesn't have effect with shader generator 1 Undecided rdb  10 Fix Released
This milestone contains Public information
Everyone can see this information.