Panda3D v1.9.0 Release Notes

Release Date: 2015-04-01 // about 9 years ago
  • ๐Ÿš€ This is a major release with many exciting new features!
    Beware of bugs.

    The list below contains a subset of the changes introduced:

    • ๐Ÿ We now offer 64-bit Windows and Mac OS X builds.
    • Switch to MSVC 2010; no more assembly manifests.
    • ๐Ÿ‘ Cocoa port for better Mac OS X support, esp. newer versions.
    • We now compile the Python modules into panda3d/*.pyd modules;
      no more imp.load_dynamic hackery needed.
    • ๐Ÿ‘Œ Support for GPU profiling in OpenGL, see pstats-gpu-timing
    • ๐Ÿ‘€ sRGB framebuffers, see framebuffer-srgb
    • ๐Ÿ‘€ sRGB texture support, see Texture::F_srgb et al.
    • ๐Ÿ‘ Integer vector support, including passing to shaders
    • Native .ogg vorbis and .wav loader (does not require ffmpeg)
    • ๐Ÿ‘ FFmpeg support is a separate plug-in module now, libp3ffmpeg.
    • Sample programs are now part of the source code repository
    • Can be built with Python 3 (highly experimental)
    • ๐Ÿ‘Œ Improvements to Windows installer
    • M_filled_wireframe rendering mode
    • ๐Ÿ‘Œ Support specifying sampler state separate from textures
    • ๐Ÿ‘Œ Support for bindless texture clearing
    • Texture LOD bias and min/max LOD settings
    • Framebuffer properties allows separate red/green/blue bits
    • Explicit float color and float depth specification in fbprops
    • Coverage samples settable via FrameBufferProperties
    • Stereo buffer implementation in OpenGL via FBOs
    • ๐Ÿ‘Œ Support enumeration of pixel formats in WebcamVideo
    • ๐Ÿ”ง Frame rate meter can be configured to show milliseconds
    • ๐Ÿ”„ Changes to improve font crispness with default settings
    • ๐Ÿ›  Fix assertion error when using more than one GraphicsEngine
    • raw-w, raw-a, etc. keyboard events for layout-independent input
    • Allow querying active keyboard layout via win.get_keyboard_map()
    • Distinguish between lmeta and rmeta keys on Mac OS X
    • ๐Ÿ‘ Floating-point image manipulation API, support float tiffs
    • Various new 16-bit and 32-bit and int texture formats
    • Man pages are now available for the majority of utilities

    Pipeline:

    • ๐Ÿ›  Fix bugs with group transformations in .egg
    • Don't create unnecessary intermediate node when loading .egg
    • ๐Ÿ‘ bam2egg supports materials, and correctly converts animations
    • ๐Ÿ‘ dae2egg has some skeletal animation support
    • ๐Ÿ‘Œ Support Maya versions up to 2015

    OpenGL renderer changes:

    • ๐ŸŽ Error checking is now OFF by default for performance reasons,
      set gl-check-errors or gl-debug to true to enable.
    • GL 4.2 shader_image_load_store support (incl. multi-bind)
    • Layered render-to-texture (using geometry shaders)
    • ๐Ÿ‘€ Seamless cube maps (on by default), see gl-cube-map-seamless
    • โž• Added gl-debug for improved debug output support
    • โž• Added GL object labels when gl-debug is enabled
    • gl-dump-compiled-shaders can be used to dump program binaries
    • Direct3D-style NT_packed_dabc vertex arrays now directly supported
    • Native rendering of line strips, using primitive restart
    • 0๏ธโƒฃ Immutable texture storage support (disabled by default)
    • 0๏ธโƒฃ Bindless texture support (disabled by default)
    • Specular component is now computed separately in FFP

    Shader system:

    • ๐Ÿ‘Œ Support for tessellation shaders
    • ๐Ÿ‘Œ Support for compute shaders via ComputeNode
    • ๐Ÿ‘ GLSL preprocessor with "#pragma include" support
    • ๐Ÿ‘ Much better coverage of shader inputs in GLSL
    • GLSL error messages now show source filename
    • Fixes apiclip_of_x shader inputs
    • Matrices can be passed directly to setShaderInput
    • ๐Ÿ‘Œ Support binding images to shaders
    • ๐Ÿ‘ Viewport array support

    ๐ŸŽ Optimizations and performance improvements:

    • ๐Ÿšš Use of C++11 move semantics to reduce refcounting overhead
    • ๐Ÿ— Build with Eigen by default for faster linear math
    • Dramatic overhead reduction of generated bindings
    • Streamline culling process
    • Tighter bounding volume generation
    • Take advantage of CPU features for bit operations
    • Circumvent bounding volume generation when not required
    • Optimizations for interned strings
    • ๐ŸŽ Use of GCC atomics should improve 64-bit Linux performance

    API features:

    • ๐Ÿ‘ Buffer protocol support for textures and arrays
    • ๐Ÿ‘ Interrogate supports various C++11 features
    • ๐Ÿ”ฆ Expose TextGlyph interfaces for making custom text renderers
    • ๐Ÿ‘ Better handling of default arguments for many functions
    • Cyclic references can sometimes be tracked through tasks
    • ๐Ÿ‘‰ ShowBase clean teardown possible
    • ๐Ÿ“š API documentation is more accurate
    • ๐Ÿ‘Œ Improve interfaces for interop with other applications

    ๐Ÿ—„ Deprecated features:

    • ๐Ÿ‘‰ Use of pandac.PandaModules is discouraged; use panda3d.core
    • ๐Ÿ—„ Deprecate DirectStart and global run() function; use ShowBase
    • โœ‚ Remove old decal system
    • โœ‚ Remove Direct3D 8 renderer
    • Remove M_light_vector tex gen mode and FFP-based bump mapping

    ๐Ÿ› Bug fixes:

    • ๐Ÿ›  Various point rendering issues are fixed now
    • ๐Ÿ›  Fix pview issue with 1-frame and/or multiple animations
    • ๐Ÿ›  Fixes for multisampling in FBOs
    • ๐Ÿ›  Fix aspect ratio of frame rate meter
    • ๐Ÿ‘Œ Support NaN and infinity values in Config.prc variables
    • ๐Ÿ›  Fixes for webcams on Linux that do not output Huffman tables
    • ๐Ÿ‘ Better support for non-basic Cg shaders on non-NVIDIA cards
    • Many others