From f8f0180ee7402631ce08372f057f0f8e2a501095 Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 28 Dec 2018 23:27:24 +0100 Subject: [PATCH] doc: add release notes for Panda 1.10.0 [skip ci] --- doc/ReleaseNotes | 148 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) diff --git a/doc/ReleaseNotes b/doc/ReleaseNotes index 4a8a13ee64..062f129ebd 100644 --- a/doc/ReleaseNotes +++ b/doc/ReleaseNotes @@ -1,3 +1,151 @@ +------------------------ RELEASE 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. + +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. + ------------------------ RELEASE 1.9.4 ------------------------ One of the bugfixes in the last 1.9.3 release introduced a regression,