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