1652 lines
74 KiB
Text
1652 lines
74 KiB
Text
------------------------ RELEASE 1.10.3 -----------------------
|
|
|
|
|
|
|
|
This is another bugfix release that addresses a variety of issues
|
|
|
|
in 1.10.2 and further improves the stability.
|
|
|
|
|
|
|
|
* Fix crash when unplugging certain devices on macOS
|
|
|
|
* Fix crash on macOS when using RIME input
|
|
|
|
* Fix logging issues/crashes in apps deployed with Python 2.7
|
|
|
|
* Fix issues when starting in fullscreen on Linux/X11
|
|
|
|
* Fix mapping of several gamepads including Trust GXT 24
|
|
|
|
* Fix Linux crash when no input devices are present
|
|
|
|
* Unbreak support for matrix arrays in vertex data in OpenGL
|
|
|
|
* Allow creating multisample FBO in OpenGL with non-MS host window
|
|
|
|
* Support playing and looping compressed Ogg and WAV audio files
|
|
|
|
* Fix generation of CollisionBox for transformed geometry in .egg
|
|
|
|
* Fix Bullet rigid body transform not updating after reparenting
|
|
|
|
* Fix sporadic color scales with lighting and custom GLSL shader
|
|
|
|
* Prevent faulty shaders from shutting down GSG on some drivers
|
|
|
|
* Allow None as either argument to OdeJoint.attach()
|
|
|
|
* Fix BufferViewer when main window is not opened right away
|
|
|
|
* Properly detect extension of pz/gz compressed video/audio files
|
|
|
|
* Fix for invalid behavior of SparseArray methods to clear bits
|
|
|
|
* FilterManager now allows overriding framebuffer properties
|
|
|
|
* Fix detection of core-only OpenGL profile on some drivers
|
|
|
|
* Add gl-forward-compatible config var for OpenGL context creation
|
|
|
|
* Add paste-emit-keystrokes variable to disable Ctrl+V on Windows
|
|
|
|
* Fix in-place |= operator on Panda types (such as SparseArray)
|
|
|
|
* Fix rare FFmpeg "bad src image pointers" errors after seek
|
|
|
|
* Fix uses of types.InstanceType in some obscure direct functions
|
|
|
|
* Fix capsule-into-sphere collision test in degenerate case
|
|
|
|
* KeyboardButton.ascii_key now also accepts a str character
|
|
|
|
* Fix errors in various Tkinter DIRECT widgets
|
|
|
|
* Expose save_egg_file/save_egg_data functions in Python API
|
|
|
|
* Fix assertion error in BoundingBox.set_min_max
|
|
|
|
* Fix typo in CollisionTraverser.respect_prev_transform property
|
|
|
|
* Properly install Python bindings when building FreeBSD installer
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.10.2 -----------------------
|
|
|
|
|
|
|
|
This release fixes several more bugs, including a few regressions
|
|
|
|
in 1.10.1. Upgrading is highly recommended.
|
|
|
|
|
|
|
|
* Fix regression on Windows causing freezes and instability
|
|
|
|
* Fix a memory leak issue in Python applications
|
|
|
|
* Fix crash reading unaligned float4 column in GeomVertexReader
|
|
|
|
* Fixes for switching to fullscreen at runtime on Windows and Linux
|
|
|
|
* Fix incorrect display mode listing in some Linux distributions
|
|
|
|
* Fix threading crash on Linux when using get_keyboard_map()
|
|
|
|
* Support "from __future__ import division" for Panda types
|
|
|
|
* Support building with Visual Studio 2019 in makepanda
|
|
|
|
* Work around Assimp crash when loading multiple .ply models
|
|
|
|
* On Windows, a Python 3-compatible version of Pmw is included
|
|
|
|
* Fix ParticlePanel spam when hovering over File menu items
|
|
|
|
* TexMemWatcher has been fixed for Python 3
|
|
|
|
* Prevent macOS window getting stuck after base.destroy()
|
|
|
|
* Fix assertion setting mass before shape with Bullet debug build
|
|
|
|
* Don't error if DirectScrolledFrame is destroyed twice
|
|
|
|
* Fix reference count corruption accessing task.__dict__
|
|
|
|
* Fix writing to SequenceNode frame_rate property
|
|
|
|
* Fix collider sort not copied when copying CollisionNode
|
|
|
|
* Add OpenCollective backer file
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.10.1 -----------------------
|
|
|
|
|
|
|
|
This is a bugfix release intended to fix several issues in 1.10.0.
|
|
|
|
|
|
|
|
* Fix crashes when gamepad is plugged in on 32-bit Windows
|
|
|
|
* Fix deploy-ng error regarding 'exist_ok' on Python 2
|
|
|
|
* Fix Linux install from pip not working with some mesa drivers
|
|
|
|
* Fix compatibility issues with upcoming Python 3.8
|
|
|
|
* Fix regression with Audio3DManager.setSoundVelocityAuto()
|
|
|
|
* Fix issues when awaiting loader.loadModel in Python 3.7
|
|
|
|
* Audio3DManager accepts tuple in setSoundVelocity/setListenerVelocity
|
|
|
|
* Fix lighting being disabled when only an AmbientLight is active
|
|
|
|
* Fix an error saving from Particle Panel in Python 3
|
|
|
|
* Depth buffer now defaults to 24-bit on macOS (fixes flickering)
|
|
|
|
* Fix no devices being detected on Windows with threading-model
|
|
|
|
* Implement collision tests from Capsule and Box into InvSphere
|
|
|
|
* Fix odd behavior and occasional crash in QuatInterval
|
|
|
|
* Fix SpriteAnim error in particle system
|
|
|
|
* Fix ShaderGenerator error when using too many shadowing lights
|
|
|
|
* Fix interrogate crash in Python 3 with optional wstring args
|
|
|
|
* Fix compilation errors for x86 Android platform
|
|
|
|
* Fix permissions of directories created by installpanda
|
|
|
|
* Improvements to API reference documentation
|
|
|
|
* Fix incorrect features printed out when printing an InputDevice
|
|
|
|
* Support cross-compiling for Android platforms in makepanda
|
|
|
|
* Work around various bugs when compiling with OS X 10.7's libc++
|
|
|
|
* Fix wrong error sometimes being reported when loading plug-in
|
|
|
|
* Allow getting NodePath from CullTraverserData object
|
|
|
|
* Add config options to Assimp loader for generating normals
|
|
|
|
* Fix multisampling in floating-point framebuffers on OpenGL
|
|
|
|
* Parse egg files with 4-component tangents (must be 1 or -1)
|
|
|
|
* StencilAttrib.make() write_mask argument is now optional
|
|
|
|
|
|
|
|
------------------------ 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,
|
|
|
|
therefore it was decided to make another 1.9.x release.
|
|
|
|
|
|
|
|
* Fix 1.9.3 regression with generating geometry in threaded pipeline
|
|
|
|
* Various compile warning fixes
|
|
|
|
* Fix occasional crash in PNMImage::quick_filter_from()
|
|
|
|
* Fix issue taking screenshots from an OpenGL FBO buffer
|
|
|
|
* Fix various issues with MeshDrawer
|
|
|
|
* Fix issue with collision sphere generation in bam2egg
|
|
|
|
* Fix compile errors with more obscure Python configurations
|
|
|
|
* Fix assert when using Texture.load_sub_image to load whole image
|
|
|
|
* Fix fsm FourState
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.9.3 ------------------------
|
|
|
|
|
|
|
|
This issue fixes several bugs that were still found in 1.9.2.
|
|
|
|
|
|
|
|
* Fix crash when using homebrew Python on Mac OS X
|
|
|
|
* Fix crash when running in Steam on Linux when using OpenAL
|
|
|
|
* Fix crash using wx/tkinter on Mac as long as want-wx/tk is set
|
|
|
|
* Fix loading models from 'models' package with models/ prefix
|
|
|
|
* Fix random crashes in task system
|
|
|
|
* Fix various race conditions causing threading issues
|
|
|
|
* Fix memory leaks in BulletTriangleMesh
|
|
|
|
* Fix loading old models with MovingPart<LMatrix4f>
|
|
|
|
* Improve performance of CPU vertex animation somewhat
|
|
|
|
* Show framebuffer properties when fbprop request fails
|
|
|
|
* Show error instead of crash on use of object before __init__
|
|
|
|
* Fix hang on exit when using Python task on threaded task chain
|
|
|
|
* Fix inability to get RGBA renderbuffer in certain cases
|
|
|
|
* Work around GLSL issue with #pragma and certain Intel drivers
|
|
|
|
* Improve performance of texture load and store operations
|
|
|
|
* Fix crashes with pbuffers on Intel cards on Windows
|
|
|
|
* Support for Autodesk Maya 2016.5
|
|
|
|
* Add shadow-depth-bits config var to control shadow map depth
|
|
|
|
* Fix cull issue when rendering cube map (or any multi-lens setup)
|
|
|
|
* Fix crash rendering with the same camera to different contexts
|
|
|
|
* Fix compile error when making static build with DX9 renderer
|
|
|
|
* Fix assertion when using aux render targets in DX9
|
|
|
|
* Work around Cg bug generating invalid ASM for saturated tex loads
|
|
|
|
* Fix issues with certain Cg shader inputs in DX9
|
|
|
|
* Support uint8 index buffers in DX9
|
|
|
|
* Fix occasional frame lag when loading a big model asynchronously
|
|
|
|
* Fix interrogate parsing issue with "const static"
|
|
|
|
* Add back missing libp3pystub.a to Mac OS X SDK
|
|
|
|
* Fix RAM caching of 2D texture arrays
|
|
|
|
* Fix Ctrl+C interrupt propagation to runtime applications
|
|
|
|
* Support for InvSphere, Box and Tube solids in bam2egg
|
|
|
|
* Preserve "intangible" and "level" collide flags in bam2egg
|
|
|
|
* Add normalized() method to vectors
|
|
|
|
* asyncFlattenStrong with inPlace=True caused node to disappear
|
|
|
|
* Fix asyncFlattenStrong called on nodes without parent
|
|
|
|
* Fix is_playing() check when playing an animation backwards
|
|
|
|
* Windows installer no longer clears %PATH% if longer than 1024 chars
|
|
|
|
* Fix inoperative -tbn/-tbnall/-tbnauto options in egg-optchar
|
|
|
|
* Fix tinydisplay texture errors on shutdown
|
|
|
|
* Fix mipmap filtering issues in tinydisplay renderer
|
|
|
|
* Fix exception when creating intervals before ShowBase is started
|
|
|
|
* Fix rare X11 .ico cursor bug; also now supports PNG-compressed icons
|
|
|
|
* Add keyword argument support to make() methods such as Shader.make()
|
|
|
|
* Fix compilation errors with Bullet 2.84
|
|
|
|
* Fix exception when trying to pickle NodePathCollection objects
|
|
|
|
* Fix error when trying to raise vectors to a power
|
|
|
|
* GLSL: fix error when legacy matrix generator inputs are mat3
|
|
|
|
* Now tries to preserve refresh rate when switching fullscreen on Windows
|
|
|
|
* Fix back-to-front sorting when gl-coordinate-system is changed
|
|
|
|
* Now also compiles on older Linux distros (eg. CentOS 5 / manylinux1)
|
|
|
|
* get_keyboard_map now includes keys on layouts with special characters
|
|
|
|
* Fix crash due to incorrect alignment when compiling Eigen with AVX
|
|
|
|
* Fix crash when writing 16-bit .tif file (now silently downsamples)
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.9.2 ------------------------
|
|
|
|
|
|
|
|
This is a minor bugfix release, fixing a few minor issues that
|
|
|
|
remained in the 1.9.1 release, including:
|
|
|
|
|
|
|
|
* Fix compile errors with more recent versions of ffmpeg
|
|
|
|
* Include .lib files for pyd modules in Windows SDK
|
|
|
|
* packp3d now recognizes default egg-object-type definitions
|
|
|
|
* Fix issues with sphere-into-box and box-into-sphere collisions
|
|
|
|
* Texture VRAM usage is now correctly reported by pstats
|
|
|
|
* Support for reading BMP files with alpha channel
|
|
|
|
* Fix OpenGL crashes in very ancient OpenGL versions
|
|
|
|
* Fix rare compile issues and crashes with esoteric Python set-ups
|
|
|
|
* Fix crash when extracting texture that's not a multiple of 4 bytes
|
|
|
|
* Work around buggy NVIDIA driver that reports _main_* shader inputs
|
|
|
|
* Add version of transform_vertices that accepts a SparseArray
|
|
|
|
* Clamp shininess to 0 to avoid GL error when shininess < 0
|
|
|
|
* Fix various bugs in RopeNode and NurbsCurveEvaluator
|
|
|
|
* Fix clock-mode Config.prc settings
|
|
|
|
* NodePath render_mode setters no longer reset wireframe color
|
|
|
|
* Fix constant reloading of texture when gl-ignore-mipmaps is set
|
|
|
|
* BamReader now releases the GIL (so it can be used threaded)
|
|
|
|
* Fix AttributeError in direct.stdpy.threading module
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.9.1 ------------------------
|
|
|
|
|
|
|
|
This minor release fixes some important regressions and bugs found
|
|
|
|
in 1.9.0, but also introduces a few minor features.
|
|
|
|
|
|
|
|
It also reintroduces the deployment tools that were absent from
|
|
|
|
the previous release.
|
|
|
|
|
|
|
|
The following issues were fixed:
|
|
|
|
* SDK now properly installs in Mac OS X 10.11 "El Capitan"
|
|
|
|
* Windows 8.1+ no longer applies DPI virtualization to Panda window
|
|
|
|
* Fix ffmpeg library load issue on Mac OS X
|
|
|
|
* Fix issues running maya2egg on Mac OS X
|
|
|
|
* Fix compiler errors on different platforms
|
|
|
|
* Fix various rare crashes
|
|
|
|
* Fix crashes on shutdown in threaded pipeline
|
|
|
|
* Fix low-level threading crash on ARM machines
|
|
|
|
* More reliably and robustly handle failures opening OpenAL device
|
|
|
|
* Textures were not being scaled to power-of-2 in some cases
|
|
|
|
* Correct scaling of normal vectors with flatten operation
|
|
|
|
* Correct positioning of viewing axis when showing lens frustum
|
|
|
|
* Add dpi-window-resize option to auto-resize window on DPI change
|
|
|
|
* Fix assertions when alpha-file-channel references unknown channel
|
|
|
|
* Use OpenGL-style vertex colors by default on non-Windows systems
|
|
|
|
* Default vertex column alignment is now 4 bytes
|
|
|
|
* Add PNMImage premultiply/unpremultiply methods.
|
|
|
|
* Fix incorrect parsing of numbers with exponents in Config.prc
|
|
|
|
* Fix for reading URLs mounted via the virtual file system
|
|
|
|
* Fix shader generator memory leaks and runtime performance
|
|
|
|
* Fix shader generator scaling of binormals and tangents
|
|
|
|
* Expose _NET_WM_PID to window managers in X11
|
|
|
|
* Fix a range of bugs in tinydisplay renderer.
|
|
|
|
* Don't error when setting lens far distance to infinity
|
|
|
|
* Allow passing custom lens to saveCubeMap/saveSphereMap
|
|
|
|
* Fix errors in saveCubeMap/saveSphereMap in threaded pipeline
|
|
|
|
* Fix DynamicTextFont.makeCopy()
|
|
|
|
* Make Texture memory size estimation more accurate
|
|
|
|
* Fix various window resizing issues
|
|
|
|
* Fix PandaSystem.getCompiler() value for clang (it reported gcc)
|
|
|
|
* x2egg no longer replaces face normals with vertex normals
|
|
|
|
* Include Eigen headers in Mac and Windows SDK
|
|
|
|
* Added geomipterrain-incorrect-normals setting, default=true
|
|
|
|
* DisplayInformation resolution list was missing on Windows
|
|
|
|
* Upgrade FMOD and Bullet versions on Windows and Mac OS X
|
|
|
|
* Various performance optimizations
|
|
|
|
* Fixed various other bugs not listed here.
|
|
|
|
|
|
|
|
Fixes and improvements for the runtime:
|
|
|
|
* Fix splash screen freezing in the X11 web plug-in
|
|
|
|
* pdeploy will now handle extracted files (eg. .ico and .cur)
|
|
|
|
* Added more options for customizing splash screen
|
|
|
|
* Fix missing xml and ast modules from morepy package
|
|
|
|
* Certificate dialog is now localized to various languages
|
|
|
|
* Fix packp3d error when Python file is not in a package
|
|
|
|
* Pass on failing exit status from packaged application
|
|
|
|
* Remove annoying ":Packager(warning): No such file" warning
|
|
|
|
* Fix issue installing pdeploy-generated .pkg on OS X 10.11
|
|
|
|
|
|
|
|
Fixes for the Python API:
|
|
|
|
* Fix mysterious and rare crash in tp_traverse
|
|
|
|
* Bullet step function accidentally defaulted to step size of 0
|
|
|
|
* Fix overflow of file offsets (eg. when seeking in huge files)
|
|
|
|
* Fix regression with memoryviews
|
|
|
|
* Fix hasattr/getattr of vector classes for invalid attributes
|
|
|
|
* Allow passing a long to methods accepting an int
|
|
|
|
* Fix crash when passing None to Filename constructor
|
|
|
|
* MouseWatcherGroup was erroneously not exposed in 1.9.0
|
|
|
|
* ShowBase no longer unmounts VFS when shutting down
|
|
|
|
* No longer requires setting PATH to import panda3d.*
|
|
|
|
* DirectDialog default geom is once again respected
|
|
|
|
* DirectDialog no longer overrides custom frameSize
|
|
|
|
* Fix WebcamVideo/MicrophoneAudio.getOptions() methods
|
|
|
|
|
|
|
|
Changes relating to the OpenGL renderer:
|
|
|
|
* Various performance improvements
|
|
|
|
* Fix point/line thickness setting
|
|
|
|
* Improve GLSL error reporting
|
|
|
|
* Fix Intel driver issues, particularly with geometry shaders
|
|
|
|
* Add more error checking for parameter types
|
|
|
|
* Integer shader inputs were not being converted to float properly
|
|
|
|
* Fix crash passing an undersized array to a GLSL shader input
|
|
|
|
* p3d_ColorScale et al may now be declared as vec3
|
|
|
|
* Fix flickering when using trans_model_to_apiview in Cg
|
|
|
|
* Support wireframe and point rendering modes in OpenGL ES
|
|
|
|
* Fix issue with model disappearing in rare cases with GLSL
|
|
|
|
* Fix ColorWriteAttrib not working as it should
|
|
|
|
* Allow deactivating PStats collectors for GPU timers
|
|
|
|
* Memory residency of graphics buffers now tracked by PStats
|
|
|
|
* Allow changing OpenGL coordinate system with gl-coordinate-system
|
|
|
|
|
|
|
|
Fixes for libRocket integration:
|
|
|
|
* libRocket did not work on Mac OS X in 1.9.0
|
|
|
|
* Fix inconsistent behavior with non-power-of-2 textures in rocket
|
|
|
|
* Use model-path for finding libRocket assets
|
|
|
|
* Add missing keys to libRocket keymap
|
|
|
|
* libRocket elements showed up white in tinydisplay
|
|
|
|
|
|
|
|
New features:
|
|
|
|
* Add -L (lighting) and -P (graphics pipe) pview options
|
|
|
|
* Add M_confined mouse mode that keeps cursor in window
|
|
|
|
* Add sample program demonstrating mouse modes
|
|
|
|
* bam2egg supports collision sphere and plane solids
|
|
|
|
* p3d_TransformTable GLSL input backported from 1.10 branch
|
|
|
|
* Add openal-device setting for selecting OpenAL audio output
|
|
|
|
* Add limited modification timestamp tracking for Ramdisk mounts
|
|
|
|
* Support for Autodesk Maya 2016
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.9.0 ------------------------
|
|
|
|
|
|
|
|
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 <Collide> 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
|
|
|
|
* Immutable texture storage support (disabled by default)
|
|
|
|
* 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
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.8.1 ------------------------
|
|
|
|
|
|
|
|
This is a bugfix release, fixing many issues in 1.8.0.
|
|
|
|
However, there may still be some (minor) bugs.
|
|
|
|
|
|
|
|
* Fix a host of issues related to GLSL shaders
|
|
|
|
* Fix incorrect registry entry for Python in Windows installer
|
|
|
|
* pdeploy generated binaries with wrong architecture on Linux
|
|
|
|
* Fix runtime error in pdeploy when building for Windows
|
|
|
|
* Support for Maya 2013
|
|
|
|
* ARToolKit now also works on Mac OS X
|
|
|
|
* WM_CLASS can be set using x-wm-class and x-wm-class-name
|
|
|
|
* No longer crashes when Xrandr is not supported
|
|
|
|
* Aux normals are now also normalized when no lights are applied
|
|
|
|
* Fix hidden cursor when switching fullscreen on Mac OS X
|
|
|
|
* PackageInstaller didn't add packages to system paths
|
|
|
|
* Allow disabling custom cursor on Windows
|
|
|
|
* Fix incorrect panning of 3D audio
|
|
|
|
* Fix omission of textures of non-standard format in ShaderGenerator
|
|
|
|
* Fix compile issue with newer gcc versions
|
|
|
|
* Fix circular reference held by ActorNode
|
|
|
|
* Window is now correctly centered on Windows
|
|
|
|
* Fix confusion with depth range of Lens::project()
|
|
|
|
* Now successfully compiles against recent SSL versions on Windows
|
|
|
|
* Fix incorrect Cg TEXUNIT0 binding during the first frame
|
|
|
|
* TextNode::set_text_scale now correctly scales spaces as well
|
|
|
|
* Expose AudioLoadRequest to Python (for async audio loading)
|
|
|
|
* Support for the libRocket debugger
|
|
|
|
* Fix newline entry in libRocket
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.8.0 ------------------------
|
|
|
|
|
|
|
|
This is a major release, with several big new features. As such,
|
|
|
|
it is likely to contain bugs.
|
|
|
|
|
|
|
|
* True threading support now enabled in the default build
|
|
|
|
* Pipelined rendering: app, cull, and draw can run in parallel, each
|
|
|
|
in their own thread
|
|
|
|
* Web plugin is more robust, and better supports Safari and Chrome
|
|
|
|
* Plugin runs properly when the username contains non-ASCII characters on Windows
|
|
|
|
* Added appRunner.p3dFilename and appRunner.p3dUrl to provide p3d
|
|
|
|
location
|
|
|
|
* Multifiles (and p3d files) now make a distinction between binary and
|
|
|
|
text files
|
|
|
|
* OccluderNode added for explicit occlusion culling
|
|
|
|
* Ambient occlusion generation for terrain
|
|
|
|
* Fixed bug where Windows installer wipes %PATH% when it's too long
|
|
|
|
* Added fog support to the shader generator
|
|
|
|
* Added normal_gloss texture mode
|
|
|
|
* Added a custom color option to the cartoon filter
|
|
|
|
* Support for texture arrays in shaders
|
|
|
|
* Better shader support in pandadx9
|
|
|
|
* Fix some issues with cube map buffers
|
|
|
|
* Can be compiled to use double-precision floats throughout, instead
|
|
|
|
of the default of single-precision floats. (Graphics drivers still
|
|
|
|
use single-precision floats, of course.)
|
|
|
|
* Can be compiled with the optional Eigen library to provide SSE2 support
|
|
|
|
* Can be compiled with SpeedTree support
|
|
|
|
* Can be compiled on MSVS2010, and/or Win64. (These builds not
|
|
|
|
provided by default.)
|
|
|
|
* Support for the Bullet physics engine
|
|
|
|
* Support for the libRocket GUI library
|
|
|
|
* Support for stereo/multiview textures
|
|
|
|
* Substantial performance improvements to movie textures
|
|
|
|
* TGA files with alpha channel now load correctly
|
|
|
|
* New "Ramdisk" mount type available for the VFS
|
|
|
|
* The VFS is now writable for ramdisk files and true on-disk files
|
|
|
|
* pdeploy -i generates a custom icon for the installed game
|
|
|
|
* wx and tk work better on OSX
|
|
|
|
* Panda windows can be embedded within wxPython windows on all
|
|
|
|
platforms (including OSX) with the new WxPandaWindow class
|
|
|
|
* Added base.pixel2d for pixel-based 2-D coordinates
|
|
|
|
* Python-based swizzling of Panda vectors, e.g. vec2.xyxy
|
|
|
|
* Python programmers can now optionally use the original unmangled C++
|
|
|
|
name for methods and classes, e.g. model.set_pos(LPoint3f(1, 2, 3)).
|
|
|
|
* Command-line filename globbing now supported on Win32, e.g. egg-texture-cards *.png
|
|
|
|
* DirectGui works with nonstandard coordinate-system in effect
|
|
|
|
* Egg loader handles double-sided polygons a little differently by
|
|
|
|
default now, for better render performance but more memory usage
|
|
|
|
(use "egg-emulate-bface 0" to restore the old behavior if needed).
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.7.2 ------------------------
|
|
|
|
|
|
|
|
This release fixes several bugs that were found in 1.7.1.
|
|
|
|
|
|
|
|
* Fix crash on GLX implementations that have no FBConfig support
|
|
|
|
* Fix trouble with buffers on Mac OS X
|
|
|
|
* Un-break shadow samplers in Cg shaders
|
|
|
|
* Fixes for relative mouse mode on OSX
|
|
|
|
* Pdeployed apps on Windows no longer show a console window
|
|
|
|
* Fix relative file paths for license files in pdeploy
|
|
|
|
* Ppatcher no longer writes out faulty checksums
|
|
|
|
* Fix plugin failure to read from cache
|
|
|
|
* Include missing X11 extension libs in runtime distribution
|
|
|
|
* Fix disappearing windows with CEGUI's OpenGL renderer
|
|
|
|
* Fixes for makepanda on FreeBSD
|
|
|
|
* Fix LightRampAttrib crash
|
|
|
|
* Fix bug with two-parameter Lens::set_fov
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.7.1 ------------------------
|
|
|
|
|
|
|
|
This release introduces several significant bugfixes,
|
|
|
|
but also introduces various minor new features. Although
|
|
|
|
it is a minor release, it may also introduce new bugs.
|
|
|
|
|
|
|
|
* Many improvements and bugfixes to pdeploy
|
|
|
|
* Vectors now support swizzle/write masks (e.g vec.xz)
|
|
|
|
* Fixes for depth buffer instabilities on Windows
|
|
|
|
* Better webcam support on Linux using Video4Linux
|
|
|
|
* Custom cursor support in X11
|
|
|
|
* Static functions that return a list are now properly wrapped
|
|
|
|
* ODE objects now have getId() exposed to Python
|
|
|
|
* NodePath.findMaterial now works properly
|
|
|
|
* Remove unnecessary dependency on GLU
|
|
|
|
* Arithmetic operators to PNMImage
|
|
|
|
* Various OpenGL ES-related bugfixes
|
|
|
|
* Support for EGL and OpenGL ES in makepanda
|
|
|
|
* Fix a crash with the Maya converters
|
|
|
|
* Include missing p3d tools on Windows
|
|
|
|
* Include tinyxml as part of the source
|
|
|
|
* Updates to PandAI
|
|
|
|
* Compile issues with latest OpenSSL fixed
|
|
|
|
* Fix static-init ordering issues with OpenSSL
|
|
|
|
* Several other bugfixes and features not listed here
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.7.0 ------------------------
|
|
|
|
|
|
|
|
This major release introduces tons of cool new features. As it
|
|
|
|
is highly experimental, it is not recommended for production use.
|
|
|
|
|
|
|
|
* Support for running Panda3D apps in a browser via web plugin
|
|
|
|
* Fully automatic shadow mapping
|
|
|
|
* Easy to use distribution and packaging framework
|
|
|
|
* Integrated support for NVIDIA PhysX
|
|
|
|
* Support for GLSL shaders
|
|
|
|
* Geometry shaders, both in Cg and GLSL
|
|
|
|
* Improved Cg support
|
|
|
|
* Hardware geometry instancing support
|
|
|
|
* Runtime fullscreen toggle
|
|
|
|
* Unix/X11 resolution querying/switching support
|
|
|
|
* Experimental Unix/X11 support for relative mouse mode (via xf86dga)
|
|
|
|
* New, cleaner import conventions, replacing PandaModules
|
|
|
|
* Parallax mapping
|
|
|
|
* Support for OpenGL ES 1 and 2
|
|
|
|
* Experimental Screen Space Ambient Occlusion
|
|
|
|
* New collision solid: box
|
|
|
|
* Working FreeBSD support
|
|
|
|
* Blur / Sharpen postprocessing filter
|
|
|
|
* Many improvements to the Shader Generator
|
|
|
|
* Fixes and improvements to DistributedObject network system
|
|
|
|
* New AI libraries
|
|
|
|
* Added MeshDrawer2D
|
|
|
|
* Most Panda objects now work with the pickle/cPickle and copy modules.
|
|
|
|
* Windows build now compiled for Python 2.6
|
|
|
|
* Tons of new features and bugfixes
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.6.2 ------------------------
|
|
|
|
|
|
|
|
This is mainly a bugfix release. Also fixes some bugs that
|
|
|
|
were accidentally introduced in 1.6.1.
|
|
|
|
|
|
|
|
* Fixed a static-init issue in ptloader on Windows
|
|
|
|
* Fixed texture scaling issue when using buffers
|
|
|
|
* x2egg is no longer broken
|
|
|
|
* Threading in OSX build fixed
|
|
|
|
* Fixed issue with flickering colors in Shader Generator
|
|
|
|
* Eggcacher now uses less RAM
|
|
|
|
* Missing 'models' dirs in packpanda games fixed
|
|
|
|
* Eggcacher step in Panda3D installer is now optional
|
|
|
|
* Fixes broken shortcut links in Start Menu on Windows
|
|
|
|
* Shader Generator now supports clip planes
|
|
|
|
* Bug with combine modes in Shader Generator fixed
|
|
|
|
* Fixed bug with Texture::make_copy()
|
|
|
|
* Bug with Actor LOD fixed
|
|
|
|
* Fixed bug with missing geometry in Collada converter
|
|
|
|
* OdeUtil.collide instability fixed
|
|
|
|
* OdeBody setData/getData methods exposed to Python
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.6.1 ------------------------
|
|
|
|
|
|
|
|
This release fixes some bugs found in 1.6.0, and adds some
|
|
|
|
minor features as well.
|
|
|
|
|
|
|
|
* Threading layer is now enabled by default
|
|
|
|
* cTrav.showCollisions fixed
|
|
|
|
* Fixed broken MovieTexture
|
|
|
|
* OpenAL is now stable on Linux, too
|
|
|
|
* OpenAL now supports dynamic playrate changing
|
|
|
|
* MayaPandaTool now handles NURBS correctly
|
|
|
|
* Fixed particle panel and directtools bugs
|
|
|
|
* Fix crash with collada exporter on Windows
|
|
|
|
* ARToolkit jittering fixed
|
|
|
|
* Now possible to override shader vertex/fragment profiles
|
|
|
|
* Maya exporter fixed on OSX
|
|
|
|
* Fixed depth texture crash for padded textures
|
|
|
|
* Fixed bug that made OdeUtil.collide return empty geoms
|
|
|
|
* Fixed crash with render.flattenStrong() when using trackball
|
|
|
|
* Several improvements to the ODE layer
|
|
|
|
* Performance improvements to GeoMipTerrain
|
|
|
|
* GeoMipTerrain.setBorderStitching to fix seams between terrains
|
|
|
|
* installpanda.py for installing Panda on Linux without deb/rpm
|
|
|
|
* Several other minor bugfixes
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.6.0 ------------------------
|
|
|
|
|
|
|
|
This release introduces several major new features and
|
|
|
|
significant bugfixes. It is likely to be buggy, like most
|
|
|
|
x.x.0 releases.
|
|
|
|
|
|
|
|
* Lightweight threading framework without runtime overhead
|
|
|
|
* Makepanda now fully supports OSX
|
|
|
|
* DDS textures are now supported
|
|
|
|
* COLLADA->egg converter added
|
|
|
|
* New C++-based Task system, which includes async threading support
|
|
|
|
* Support for asynchronous on-demand loading of textures and/or animations
|
|
|
|
* New software-based renderer "tinydisplay"
|
|
|
|
* More pythonic features: iterable methods, implicit parameter casting
|
|
|
|
* Packpanda now also supports Linux
|
|
|
|
* Added libsquish support for DXT compression
|
|
|
|
* New MeshDrawer class for realtime mesh manipulation
|
|
|
|
* Infamous FBO bug fixed
|
|
|
|
* Preliminary support for Volumetric Lighting
|
|
|
|
* Shader k-parameters can now contain underscores
|
|
|
|
* Fixed OpenCVTexture and ARToolKit on Linux
|
|
|
|
* GeoMipTerrain now supports multi-channel heightmaps
|
|
|
|
* GeoMipTerrain features new near/far LOD system
|
|
|
|
* GeoMipTerrain performance improved
|
|
|
|
* CallbackNode added to support low-level drawing callbacks from Python
|
|
|
|
* Fixed some minor but annoying OpenAL/FFMpeg issues
|
|
|
|
* Fixed bug with lcontrol and rcontrol on Linux
|
|
|
|
* Fixed bug regarding icon filenames
|
|
|
|
* Multisampling fixed on Linux and OSX
|
|
|
|
* Left and right scrolling events now available
|
|
|
|
* Several improvements to API reference
|
|
|
|
* ShaderGenerator now supports several more blend modes and color scale
|
|
|
|
* .x converter now supports AnimTicksPerSecond
|
|
|
|
* vfs-mount-url can load models directly off the web
|
|
|
|
* Smoother transitions in FadeLodNode
|
|
|
|
* Dynamically-generated outline on fonts: loader.loadFont(outlineWidth = xxx)
|
|
|
|
* Texture.getRamImageAs()
|
|
|
|
* base.toggleTexMem()
|
|
|
|
* Text generation performance optimization
|
|
|
|
* Various performance optimizations
|
|
|
|
* Several more minor bugs fixed
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.5.4 ------------------------
|
|
|
|
|
|
|
|
This is a bugfix release, fixing the problems found in 1.5.3.
|
|
|
|
|
|
|
|
* Fixes packpanda crash
|
|
|
|
* Linux build accidentally got configured for OpenAL
|
|
|
|
* EggTexture now writes wrap modes and types correctly.
|
|
|
|
* Fixes an occasional crash in TextureAttrib
|
|
|
|
* DirectEntry no longer crashes when moving cursor in a full box
|
|
|
|
* Several bugs in RigidBodyCombiner fixed
|
|
|
|
* Normals generated by GeoMipTerrain are now correct
|
|
|
|
* Bugs fixed in DirectGrid
|
|
|
|
* Linux users can now use WindowProperties.setParentWindow
|
|
|
|
* Fmod now compiles on 64-bits
|
|
|
|
* Fixed several bugs in the API reference generator
|
|
|
|
* EggNurbsSurface is now exposed to Python
|
|
|
|
* Fixes a bug in PGButton
|
|
|
|
* GeoMipTerrain set_heightfield fixed
|
|
|
|
* Several bugs in the Max exporter:
|
|
|
|
- Now generates binormals and tangents
|
|
|
|
- Pview output fixed
|
|
|
|
- Overwrite confirmation fixed
|
|
|
|
- Export type 'Both' now works correctly
|
|
|
|
* Several other bugs not listed above.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.5.3 ------------------------
|
|
|
|
|
|
|
|
This release fixes most of the remaining bugs, but it adds
|
|
|
|
some new features as well.
|
|
|
|
|
|
|
|
* License changed to BSD
|
|
|
|
* Fixes x-file parser for real, this time.
|
|
|
|
* Fixes serious bug in shader generator
|
|
|
|
* Adds MSVCR71 and MSVCP71 back to the distro (for python)
|
|
|
|
* Fixed a bug in GeoMipTerrain
|
|
|
|
* Adds support for .egg.pz to packpanda --bam
|
|
|
|
* Turns on libpandaode support
|
|
|
|
* Mayapandatool fixed
|
|
|
|
* Added support for 3dsmax 2009
|
|
|
|
* Max exporter overhauled
|
|
|
|
* Improved support for 64-bits, gcc 4.3 and OSX
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.5.2 ------------------------
|
|
|
|
|
|
|
|
This fixes just one serious bug: release 1.5.1 accidentally
|
|
|
|
reversed the TextureStage sort order.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.5.1 ------------------------
|
|
|
|
|
|
|
|
Mostly a bugfix release, but adds some minor features too.
|
|
|
|
|
|
|
|
- The x-file parser now is back to being case-insensitive, as it should be.
|
|
|
|
- Panda plugins now use an explicit plugin-path.
|
|
|
|
- Better DLL-hell protection under windows.
|
|
|
|
- Added GeoMipTerrain (but no docs yet)
|
|
|
|
- Using python -E in the start menu - really, this time.
|
|
|
|
- Linmath classes now initialized when using python.
|
|
|
|
- ConfigVariableSearch
|
|
|
|
- Implicit sort order for texture attribs.
|
|
|
|
- OpenAL audio manager now gives control over streaming vs preloaded sounds.
|
|
|
|
- Preliminary support for 64-bit linux (but thirdparty libs missing).
|
|
|
|
- Fixes a dozen or so assorted bugs.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.5.0 ------------------------
|
|
|
|
|
|
|
|
* Shader Generator means advanced rendering without
|
|
|
|
having to manually write shaders. Includes:
|
|
|
|
- Per-Pixel Lighting
|
|
|
|
- Normal Maps
|
|
|
|
- Gloss Maps
|
|
|
|
- Glow (Self-Illumination) Maps
|
|
|
|
- HDR tone mapping
|
|
|
|
- Cartoon shading
|
|
|
|
* Class 'CommonFilters' makes it easy to do image postprocessing:
|
|
|
|
- Bloom Filter
|
|
|
|
- Cartoon Inking
|
|
|
|
- More coming soon.
|
|
|
|
* Maya exporter now supports normal maps, gloss maps, glow maps.
|
|
|
|
* Now compiled for Python 2.5
|
|
|
|
* Adds support for Maya 2008 export.
|
|
|
|
* Lots of small tweaks, bugfixes, performance improvements, etc.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.4.2 ------------------------
|
|
|
|
|
|
|
|
* Added code for mouse-trail logging.
|
|
|
|
* Fixed a minor bug in the new OpenAL code.
|
|
|
|
* The installer now uses less memory.
|
|
|
|
* Now easier to compile with recent versions of SSL.
|
|
|
|
* Minor bugfix in exposeJoint
|
|
|
|
* Added config variable: basic-shaders-only
|
|
|
|
* graphicsEngine.removeWindow() and graphicsOutput.setOneShot() fixed.
|
|
|
|
* Roaming ralph sample now uses collision detection correctly.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.4.1 ------------------------
|
|
|
|
|
|
|
|
This release:
|
|
|
|
|
|
|
|
* fixes a couple of small bugs
|
|
|
|
* adds support for the new OpenAL/FFMpeg unified sound/video system.
|
|
|
|
* renames the sample programs in a more sensible way
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.4.0 ------------------------
|
|
|
|
|
|
|
|
This release incorporates lots of small, incremental
|
|
|
|
improvements.
|
|
|
|
|
|
|
|
* Model-cache enabled by default in prepackaged release.
|
|
|
|
* Now compiling with visual studio 2005.
|
|
|
|
* Plugin installation now slightly harder --- see instructions in plugins dir.
|
|
|
|
* Improved OSX support: mouselook, fmod fixes, icon filename.
|
|
|
|
* Better memory usage tracking from pstats.
|
|
|
|
* Removed dependencies on NSPR.
|
|
|
|
* New default-model-extension prc variable (instead of old implicit-extension behavior)
|
|
|
|
* New arc emitter in particle system.
|
|
|
|
* Multiple different Actors can be flattened into one node.
|
|
|
|
* Texture compression in DX8, DX9.
|
|
|
|
* New features to support low-memory platforms.
|
|
|
|
* ParametricCurveDrawer etc. officially deprecated in favor of RopeNode.
|
|
|
|
* DynamicTextFont::RenderMode allows generating geometric fonts (instead of always using texture-based fonts).
|
|
|
|
* Some integrated support for ODE (not yet polished and ready)
|
|
|
|
* New RigidBodyCombiner unifies independently moving bodies into a single Geom as a rendering optimization.
|
|
|
|
* Support for depth-stencil textures.
|
|
|
|
* Better support for fullscreen mode on Linux.
|
|
|
|
* Panda GL/DX windows can be subordinate to other windows (Win32 only).
|
|
|
|
* Better multithreaded protection.
|
|
|
|
* Interrogate correctly handles "const" vs. non-const objects.
|
|
|
|
* PlaneNode::set_clip_effect allows user-defined cull planes (in addition to clip planes).
|
|
|
|
* Several low-level rendering optimizations.
|
|
|
|
* Simple occlusion culling with PipeOcclusionCullTraverser.
|
|
|
|
* Optional bounding boxes (instead of spheres): "bounds-type box", "bounds-type best"
|
|
|
|
* Addition of eggcacher utility to preload model-cache.
|
|
|
|
* In source tree, added 'skel' directory to make it easier for newcomers to extend panda.
|
|
|
|
* The obsolete config variable framebuffer-mode has been removed.
|
|
|
|
|
|
|
|
I have no doubt that there will be a few significant bugs in this release, like all X.X.0 releases. - Josh
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.3.2 ------------------------
|
|
|
|
Bugfix release. This fixes a few problems in 1.3.1
|
|
|
|
|
|
|
|
* Sound system won't initialize properly under linux: Fixed.
|
|
|
|
* Panda DLL names now all start with "libp3" or "libpanda"
|
|
|
|
* Normals reversed in heightfield tesselator: fixed.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.3.1 ------------------------
|
|
|
|
Bugfix release. This fixes a few problems in 1.3.0
|
|
|
|
|
|
|
|
* Sound system won't initialize properly under linux: Fixed.(Update: Not fixed)
|
|
|
|
* Panda not compatible with SElinux: mostly fixed, except fmod.
|
|
|
|
* Max exporter and importer broken: Fixed.
|
|
|
|
* Minor problem involving gsg handling in showbase: Fixed.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.3.0 ------------------------
|
|
|
|
|
|
|
|
This release contains several new features, and as such, it might be
|
|
|
|
buggy. However, we've been testing it internally for a couple weeks,
|
|
|
|
and it seems to be okay. It contains the following new features:
|
|
|
|
|
|
|
|
* Stencil buffers and stencil operations now supported.
|
|
|
|
* Sound API now supports DSP and better support for large MP3s.
|
|
|
|
* Video uses FFMPEG instead of DirectShow - no more codec issues.
|
|
|
|
* Heightfield terrain.
|
|
|
|
* Support for intra-frame animation interpolation.
|
|
|
|
* Use of 'import *' now only imports correct symbols.
|
|
|
|
* Various minor improvements to the particle system.
|
|
|
|
* Scene editor at least partially operational (alpha level)
|
|
|
|
* Removed most of the 65,536 vertex-per-mesh limits.
|
|
|
|
* Various low-level optimizations.
|
|
|
|
* Support for threaded model loads (only in CVS, not in distro).
|
|
|
|
* Support for 'model-cache-dir', which caches a BAM each time you load an EGG.
|
|
|
|
* OnscreenText/DirectLabel can contain embedded 3D models inside the text.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.2.3 ------------------------
|
|
|
|
|
|
|
|
The last release was a disaster:
|
|
|
|
|
|
|
|
* I failed to fix packpanda.
|
|
|
|
* I broke the tcl/tk stuff.
|
|
|
|
* I added ppythonw, and it wasn't reliable.
|
|
|
|
|
|
|
|
So basically, this release fixes packpanda and tcl/tk. It doesn't
|
|
|
|
fix ppythonw yet (I don't know what's wrong), but it does disable
|
|
|
|
it temporarily. It keeps the few things from 1.2.2 that were worth
|
|
|
|
keeping.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.2.2 ------------------------
|
|
|
|
|
|
|
|
This is a minor bugfix release.
|
|
|
|
|
|
|
|
* Adds 'ppythonw', a version of ppython that doesn't
|
|
|
|
open a console window.
|
|
|
|
* If you have a bad fmod DLL in your windows folder,
|
|
|
|
this version compensates.
|
|
|
|
* Fixes a small bug in the VRML-to-egg converter.
|
|
|
|
* Small stylistic improvements in some sample programs.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.2.1 ------------------------
|
|
|
|
|
|
|
|
This release is likely to be much more stable than its predecessors.
|
|
|
|
It contains many new features:
|
|
|
|
|
|
|
|
* lots of performance optimizations
|
|
|
|
* a preliminary OSX port
|
|
|
|
* new modes for animation blending
|
|
|
|
* easier partial-body animations
|
|
|
|
* more powerful shader-to-engine interface
|
|
|
|
* better support for rotating bodies in physics engine
|
|
|
|
* support for compressed model files
|
|
|
|
* multiple render targets (ie, glDrawBuffers)
|
|
|
|
* support for stereo rendering
|
|
|
|
* more complete API reference manual
|
|
|
|
* ability to control mipmaps explicitly
|
|
|
|
* better tools for debugging offscreen buffers
|
|
|
|
* new sample programs
|
|
|
|
* a number of packpanda repairs
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.1.0 ------------------------
|
|
|
|
|
|
|
|
This is a BETA release. It's pretty reliable, but there are still a
|
|
|
|
few quirks here and there. Over the summer, Panda3D was overhauled
|
|
|
|
top to bottom. The new code is dramatically improved, but it needs a
|
|
|
|
little bit of testing. The new features are:
|
|
|
|
|
|
|
|
* Much faster rendering of high-poly models.
|
|
|
|
* Dramatically improved vertex and pixel shader support.
|
|
|
|
* New demo programs using shaders and render-to-texture.
|
|
|
|
* Play movies by using an AVI as a texture (windows only).
|
|
|
|
* Python scripting uses much faster python to C++ interface.
|
|
|
|
* Support for procedurally-created geometry (eg, fractals, etc).
|
|
|
|
* Cleaner, simpler internal data structures.
|
|
|
|
* Comes with Python 2.4 support built-in.
|
|
|
|
* A lot more.
|
|
|
|
|
|
|
|
The new demo programs are:
|
|
|
|
|
|
|
|
* Render to Texture Demo
|
|
|
|
* Cartoon Shader Demo
|
|
|
|
* Motion Trails Demo
|
|
|
|
* Procedural Geometry (Fractals) Demo
|
|
|
|
* Normal Mapping Demo
|
|
|
|
|
|
|
|
However, a caution: this is a BETA release: reasonably stable, but
|
|
|
|
not quite perfect. Please send us your bug reports.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.0.5 ------------------------
|
|
|
|
|
|
|
|
UPDATE: this release broke support for visual studio. Use
|
|
|
|
panda3d 1.0.4 if you wish to compile panda from scratch using
|
|
|
|
visual studio.
|
|
|
|
|
|
|
|
This release consists mainly of compatibility improvements.
|
|
|
|
|
|
|
|
* Now compiles under MS Visual Toolkit (makefile changes)
|
|
|
|
|
|
|
|
* Now compiles under Mandrake 10.1 (a fix in the makefile)
|
|
|
|
|
|
|
|
* Now compiles under Debian Sarge (a fix in the VRML lexer)
|
|
|
|
|
|
|
|
* Now compiles under Ubuntu HH (same as DEBIAN SARGE)
|
|
|
|
|
|
|
|
* Add code for building debian 'deb' archives.
|
|
|
|
|
|
|
|
* Fix scene editor and particle panel so they work on linux.
|
|
|
|
|
|
|
|
* Add support for --no-python to makepanda.
|
|
|
|
|
|
|
|
* Tidied up makepanda a bit.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.0.4 ------------------------
|
|
|
|
|
|
|
|
* This version includes the new Max exporter and the new Maya
|
|
|
|
export panel.
|
|
|
|
|
|
|
|
* We have added the --genman option to makepanda (to
|
|
|
|
regenerate the API reference manual). This uses the epydoc
|
|
|
|
documentation-generation system.
|
|
|
|
|
|
|
|
* Several bugs in the new tutorials have been repaired.
|
|
|
|
|
|
|
|
* A bug in fmod positional audio has been fixed.
|
|
|
|
|
|
|
|
* Makepanda now puts the maya and max plugins in a
|
|
|
|
separate 'plugins' directory, for convenience.
|
|
|
|
|
|
|
|
* The 'libpandaegg' library has been exported to python.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.0.3 ------------------------
|
|
|
|
|
|
|
|
* The binary release contains a brand new collection of
|
|
|
|
sample programs. The new sample programs are much better.
|
|
|
|
|
|
|
|
* If you install the windows binary release, the
|
|
|
|
sample programs can now be run from the start menu.
|
|
|
|
|
|
|
|
* Lighting under DirectX was broken. This has been repaired.
|
|
|
|
|
|
|
|
* The binary release has been compiled with support for pstats.
|
|
|
|
(Previously, it was compiled with pstats disabled).
|
|
|
|
|
|
|
|
* Various changes to make panda3d more compatible with
|
|
|
|
the 'epydoc' documentation-generation system.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.0.2 ------------------------
|
|
|
|
|
|
|
|
This is a bugfix release.
|
|
|
|
|
|
|
|
* makepanda contained a bug: it was compiling maya2egg6
|
|
|
|
against the Maya 5.0 libraries, making it largely useless.
|
|
|
|
This is fixed.
|
|
|
|
|
|
|
|
* Maya2egg65 has been added, for Maya 6.5 users.
|
|
|
|
|
|
|
|
* The configuration combo "want-tk=false, want-directtools=true"
|
|
|
|
used to confuse panda, because directtools uses Tk. Now
|
|
|
|
it's smart enough to do the right thing.
|
|
|
|
|
|
|
|
* When you ask controlJoint to create a control node for
|
|
|
|
you, it initializes the control node to the joint's initial
|
|
|
|
position.
|
|
|
|
|
|
|
|
* The scene editor supposedly works now. We'll see.
|
|
|
|
|
|
|
|
* The models directory was missing the animation 'panda-walk4',
|
|
|
|
which is necessary for the tutorial.
|
|
|
|
|
|
|
|
* A new directory 'win-extras' has been added to the
|
|
|
|
thirdparty tree. This contains some miscellaneous python
|
|
|
|
libraries needed at the Entertainment Technology Center.
|
|
|
|
The script that builds the windows installer will include
|
|
|
|
these libraries in the distribution.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.0.1 ------------------------
|
|
|
|
|
|
|
|
This is a bugfix release.
|
|
|
|
|
|
|
|
* In the previous binary release, Config.prc did not contain a
|
|
|
|
load-display line. This confuses pview. Pview is being fixed,
|
|
|
|
but until then, the load-display line has been restored.
|
|
|
|
|
|
|
|
* The Max and Maya plugins were inadvertently omitted from the
|
|
|
|
previous binary release. This has been corrected.
|
|
|
|
|
|
|
|
* An error in the distributed object networking layer has
|
|
|
|
been fixed. The error only affected those who were trying to
|
|
|
|
write LAN games using the CMU LAN server and p2p messages.
|
|
|
|
|
|
|
|
* An error in the physics code has been corrected.
|
|
|
|
|
|
|
|
* Python Megawidgets (pmw), which is required for "directtools",
|
|
|
|
was not supplied in the previous release. We are now including
|
|
|
|
pmw. In the Linux RPMs, to avoid overwriting any
|
|
|
|
distribution-supplied pmw package, we put this package
|
|
|
|
into /usr/share/panda3d.
|
|
|
|
|
|
|
|
* To be consistent, we moved all the other python code into
|
|
|
|
/usr/share/panda3d as well. This requires a file 'panda.pth'
|
|
|
|
in the python lib directory.
|
|
|
|
|
|
|
|
* In the binary RPMs, the file permissions of the python
|
|
|
|
source files have been changed to 555, so that even if root
|
|
|
|
runs panda, the '.pyc' files will not be modified or regenerated.
|
|
|
|
|
|
|
|
------------------------ RELEASE 1.0.0 ------------------------
|
|
|
|
|
|
|
|
Configuration, installation, and execution environments:
|
|
|
|
|
|
|
|
* This is the introduction of the new Panda version numbering
|
|
|
|
system. The Panda version will be represented with three
|
|
|
|
dot-separated numbers. The first number, the major version, will
|
|
|
|
change only very rarely. The second number, the minor version,
|
|
|
|
will increment frequently, with each new feature release. The
|
|
|
|
third number will increment as needed to indicate bugfix releases
|
|
|
|
on the minor version.
|
|
|
|
|
|
|
|
* Use PandaSystem::get_version_string() (or
|
|
|
|
PandaSystem.getVersionString() in Python) to return the version
|
|
|
|
number of the currently-running Panda.
|
|
|
|
|
|
|
|
* New runtime config system allows for dynamic loading of prc files
|
|
|
|
and supports querying of available variable names. Use
|
|
|
|
ConfigVariableString, ConfigVariableBool, etc. to get a value from
|
|
|
|
the prc file(s); use the ConfigVariableManager and
|
|
|
|
ConfigPageManager classes (or the cvMgr and cpMgr global objects
|
|
|
|
in Python) to make general queries.
|
|
|
|
|
|
|
|
* The ppremake build system now properly detects intra-tree
|
|
|
|
dependencies, but only if each tree is fully built and installed
|
|
|
|
before ppremake is run within the next dependent tree. Requires
|
|
|
|
using ppremake version 1.18 or higher.
|
|
|
|
|
|
|
|
Miscellaneous:
|
|
|
|
|
|
|
|
* New support for encrypted streams, including encrypted subfiles
|
|
|
|
within a multifile, using the OpenSSL encryption library. Adds
|
|
|
|
pencrypt and pdecrypt programs.
|
|
|
|
|
|
|
|
* The default port for PStats is now 5185, to avoid a conflict with
|
|
|
|
Instant Messenger.
|
|
|
|
|
|
|
|
* New "smooth" checkbox on PStats graphs provides a better sense of
|
|
|
|
overall trends when graphs are noisy.
|
|
|
|
|
|
|
|
* The meaning of the three components of HPR angles has been
|
|
|
|
officially changed, in particular the meaning of the R component.
|
|
|
|
This change was introduced to make the three components more
|
|
|
|
consistent with each other, and to make P and R work together in a
|
|
|
|
more sensible way. Existing code which used hard-coded HPR angles
|
|
|
|
may be invalidated by this change. To convert existing code, you
|
|
|
|
should use the global function old_to_new_hpr() to determine what
|
|
|
|
new HPR triple that corresponds to an old HPR triple. As a
|
|
|
|
temporary stopgap, you may define temp-hpr-fix 0 in your prc file.
|
|
|
|
|
|
|
|
* Add support for weak reference counts using the WeakPointerTo
|
|
|
|
class.
|
|
|
|
|
|
|
|
* Add optional support for STL's semistandard hashing containers,
|
|
|
|
e.g. hash_map and hash_set.
|
|
|
|
|
|
|
|
* Panda no longer requires any registry keys or environment
|
|
|
|
variables. This means it is now possible to run panda directly
|
|
|
|
from a CD, install multiple copies of panda on a single machine,
|
|
|
|
or install panda by copying the tree from another computer.
|
|
|
|
Note that the installer does add the panda 'bin' directory to
|
|
|
|
your PATH, and it does store an uninstall key in the registry,
|
|
|
|
but neither of these is needed for panda to function.
|
|
|
|
|
|
|
|
* The 'makepanda' build system is now capable of building
|
|
|
|
prepackaged games for Windows. These prepackaged games are simply
|
|
|
|
copies of panda with the game code included, some of the
|
|
|
|
unnecessary stuff stripped out, and some changes to the start
|
|
|
|
menu. See "Airblade - Installer" on the panda downloads page
|
|
|
|
for an example.
|
|
|
|
|
|
|
|
* This is the first release to include not just a binary installer
|
|
|
|
for windows, but also binary RPMs for fedora 2, fedora 3, and
|
|
|
|
redhat 9.
|
|
|
|
|
|
|
|
* All of the sample programs have been tested. The ones that didn't
|
|
|
|
work have been removed, the ones that do work have been (lightly)
|
|
|
|
documented.
|
|
|
|
|
|
|
|
* In the Win32 binary release, the 'config.prc' file has been moved
|
|
|
|
to the 'etc' directory. This is to make it consistent with the
|
|
|
|
Linux version.
|
|
|
|
|
|
|
|
Rendering system:
|
|
|
|
|
|
|
|
* Multitexture support is now part of Panda. This introduces the
|
|
|
|
TextureStage and TexCoordName classes, as well as new interfaces
|
|
|
|
like NodePath::add_texture(). As of the present release,
|
|
|
|
multitexture is only supported when using the OpenGL renderer.
|
|
|
|
|
|
|
|
* Support for programmable shaders is now possible using the Cg
|
|
|
|
shader language. Assign a CgShaderAttrib to a node to apply a
|
|
|
|
programmable shader.
|
|
|
|
|
|
|
|
* New support for the Helix library allows playing of a streaming
|
|
|
|
movie in a Panda texture. Presently only supported on Windows.
|
|
|
|
|
|
|
|
* Deprecated the old "win-origin-x" and "win-origin-y" prc variables
|
|
|
|
in favor of "win-origin", which takes two numbers separated by a
|
|
|
|
space. Similarly with "win-width" and "win-height", in favor of
|
|
|
|
"win-size".
|
|
|
|
|
|
|
|
* Deprecated the old Camera::set_scene() interface; now a Camera
|
|
|
|
implicitly renders whatever scene graph it is parented to.
|
|
|
|
|
|
|
|
* Removed the old GraphicsLayer and GraphicsChannel classes.
|
|
|
|
Instead of using these interfaces, you can now create any number
|
|
|
|
of DisplayRegions directly on the window.
|
|
|
|
|
|
|
|
* Offscreen render-to-a-texture will now be properly oriented under
|
|
|
|
DirectX (previously, it would render the texture image upside-down
|
|
|
|
and backward).
|
|
|
|
|
|
|
|
* Support for automatic keystone correction caused by an off-axis
|
|
|
|
physical projector using Lens::set_keystone().
|
|
|
|
|
|
|
|
* New framebuffer-mode prc variable allows explicit control over the
|
|
|
|
default framebuffer properties requested by Panda, including
|
|
|
|
whether software or hardware rendering is required.
|
|
|
|
|
|
|
|
* Added "multisample" transparency mode (alpha keyword "ms" in an
|
|
|
|
egg file), which allows good-quality transparency (especially for
|
|
|
|
alpha cutouts) without requiring back-to-front sorting, and
|
|
|
|
without artifacts from improper sorting. This does require
|
|
|
|
special multisample hardware capabilities, however. Presently
|
|
|
|
supported in OpenGL mode only. Automatic fallback to "binary"
|
|
|
|
transparency mode if multisample is not supported on a given
|
|
|
|
platform.
|
|
|
|
|
|
|
|
* New cursor-filename and icon-filename config variables replace the
|
|
|
|
old win32-mono-cursor and win32-window-icon variables. Also,
|
|
|
|
runtime control over these properties is now provided by the
|
|
|
|
WindowProperties class.
|
|
|
|
|
|
|
|
* Better management of potential memory leaks due to cyclic
|
|
|
|
reference counts in the RenderState and TransformState caches.
|
|
|
|
Now cycles are automatically detected and broken.
|
|
|
|
|
|
|
|
Scene graph:
|
|
|
|
|
|
|
|
* GeomNodes now have a CollideMask, just like CollisionNodes, which
|
|
|
|
deprecates the old set_collide_geom() interface to detect
|
|
|
|
collisions with visible geometry. There is a new NodePath
|
|
|
|
interface for querying and setting the collide masks for single
|
|
|
|
nodes or for entire subgraphs.
|
|
|
|
|
|
|
|
* New NodePath interfaces to control lighting eliminate the need to
|
|
|
|
create an explicit LightAttrib. The new lighting interfaces are
|
|
|
|
designed to be similar to the new multitexture interfaces.
|
|
|
|
|
|
|
|
* New NodePath interfaces to control the texture matrix, including a
|
|
|
|
new project_texture() method to enable hardware-assisted
|
|
|
|
projective texturing.
|
|
|
|
|
|
|
|
* New NodePath::flatten_multitex() interface to bake in certain
|
|
|
|
kinds of multitexture effects into a single texture, generated
|
|
|
|
on-the-fly.
|
|
|
|
|
|
|
|
* New options for ColorBlendAttrib and RenderModeAttrib.
|
|
|
|
|
|
|
|
* NodePath::set_transparancy() now accepts a
|
|
|
|
TransparencyAttrib::Mode parameter to specify exactly what kind of
|
|
|
|
transparency you'd like.
|
|
|
|
|
|
|
|
* New NodePath::set_render_mode() interface accepts a
|
|
|
|
RenderModeAttrib::Mode parameter, deprecating
|
|
|
|
set_render_mode_filled() and set_render_mode_wireframe().
|
|
|
|
|
|
|
|
* LerpQuatInterval can be used as a drop-in replacement for
|
|
|
|
LerpHprInterval; it performs spherical lerps in quaternion space,
|
|
|
|
rather than lerping each component of a HPR individually.
|
|
|
|
LerpHprInterval is not deprecated; it remains useful within its
|
|
|
|
limitations.
|
|
|
|
|
|
|
|
* New DirectSliderBar gui object implements a standard slider bar
|
|
|
|
with a thumb (like a window scroll bar).
|
|
|
|
|
|
|
|
* Lighting normals are now automatically counterscaled properly when
|
|
|
|
lighting is enabled in the presence of a scale, uniform or
|
|
|
|
nonuniform, in the scene graph. You can also use
|
|
|
|
RescaleNormalAttrib for explicit control over this behavior.
|
|
|
|
|
|
|
|
* Improvements to RopeNode for rendering splines in various
|
|
|
|
representations.
|
|
|
|
|
|
|
|
Collisions and physics systems:
|
|
|
|
|
|
|
|
* New CollisionSegment and CollisionInvSphere collision solids.
|
|
|
|
|
|
|
|
* The collision system now reports normals for intersections
|
|
|
|
detected from collision rays, segments, and lines.
|
|
|
|
|
|
|
|
* Several improvements to the physics system.
|
|
|
|
|
|
|
|
Model converters:
|
|
|
|
|
|
|
|
* x2egg and egg2x added to converters, as well as to inline
|
|
|
|
conversion supported via ptloader. This adds support for
|
|
|
|
DirectX's native so-called "retained-mode" file format. This file
|
|
|
|
format supports animation and joint hierarchies as well as basic
|
|
|
|
polygonal models.
|
|
|
|
|
|
|
|
* vrml2egg added to converters, as well as to inline conversion
|
|
|
|
supported via ptloader. This adds support for VRML 2.0 model
|
|
|
|
files only.
|
|
|
|
|
|
|
|
* Added -noabs option to many model converters, to help detect
|
|
|
|
problems with unintended absolute path references.
|
|
|
|
|
|
|
|
* Added egg2bam -flatten and -combine-geoms.
|
|
|
|
|
|
|
|
* We now have working exporters for Max5, Max6, Max7, Maya5, Maya6.
|
|
|
|
(Update: these were accidentally omitted from the binary release)
|
|
|
|
|
|
|
|
* The Max exporter is dramatically improved: it now includes support
|
|
|
|
for character studio, and the polygon winding bug has been fixed.
|
|
|
|
|
|
|
|
|
|
|
|
------------------------ RELEASE 2004-07-27 ------------------------
|
|
|
|
|
|
|
|
Configuration, installation, and execution environments:
|
|
|
|
|
|
|
|
* We have moved to a new, more explicit naming convention for our
|
|
|
|
import statements. Rather than installing all Python files into
|
|
|
|
one big flat namespace, we now import them from their appropriate
|
|
|
|
directories, e.g. "from direct.actor import Actor".
|
|
|
|
|
|
|
|
* "from ShowBaseGlobal import *" is replaced with "import
|
|
|
|
direct.directbase.DirectStart" and/or "from pandac.PandaModules
|
|
|
|
import *".
|
|
|
|
|
|
|
|
* The old "generatePythonCode" script has been replaced with a new
|
|
|
|
"genPyCode" script that automates the Python wrapper generation
|
|
|
|
process without requiring any special parameters.
|
|
|
|
|
|
|
|
* The old dependencies on environment variables have been removed.
|
|
|
|
There are no longer requirements for any environment variables to
|
|
|
|
be set in either the build process or the runtime environment
|
|
|
|
(although a few optional environment variables remain to allow
|
|
|
|
custom configuration).
|
|
|
|
|
|
|
|
* INSTALL document greatly enhanced for clarity.
|
|
|
|
|
|
|
|
* An automatic build script is now provided to further simplify
|
|
|
|
building Panda3D for Unix and Cygwin users.
|
|
|
|
|
|
|
|
* The old "Configrc" filename to identify runtime configuration
|
|
|
|
files is deprecated; configuration files should now be named
|
|
|
|
Config.prc, or in general, *.prc. The system-default
|
|
|
|
configuration files are auto-generated as 20_panda.prc,
|
|
|
|
30_pandatool.prc, and 40_direct.prc (the numeric prefixes control
|
|
|
|
the order in which these are loaded at runtime).
|
|
|
|
|
|
|
|
Rendering system:
|
|
|
|
|
|
|
|
* Some deprecated methods of CollisionEntry have been flagged to
|
|
|
|
raise an exception now; these are replaced with the newer
|
|
|
|
interfaces that can return a collision point in an arbitrary
|
|
|
|
coordinate system.
|
|
|
|
|
|
|
|
* Camera::set_cull_center() can be used for debugging culling by
|
|
|
|
setting the effective point of visibility culling different from
|
|
|
|
the actual point. From Python, use base.oobeCull() to examine
|
|
|
|
this effect.
|
|
|
|
|
|
|
|
* Alt-Enter in pview toggles between fullscreen and windowed modes.
|
|
|
|
|
|
|
|
* Added experimental support for GL display lists.
|
|
|
|
|
|
|
|
Scene graph:
|
|
|
|
|
|
|
|
* Exposed methods to directly retrieve and set the individual
|
|
|
|
vertices of a GeomNode from Python code.
|
|
|
|
|
|
|
|
* The new PortalNode defines the interface for Panda's new
|
|
|
|
cell-portal visibility system; each PortalNode is a window into
|
|
|
|
another zone, or a separate subgraph; the PortalNode can hide or
|
|
|
|
show the subset of its zone's geometry visible through its
|
|
|
|
"portal".
|
|
|
|
|
|
|
|
* The new PolylightNode applies a simple lighting-like effect
|
|
|
|
without actually using lighting; objects will brighten or darken
|
|
|
|
as a whole according to their proximity to the light. Use
|
|
|
|
PolylightEffect to enable this effect.
|
|
|
|
|
|
|
|
* The new FadeLODNode works like ordinary LODNode, but the switches
|
|
|
|
are alpha-blended in over a short period of time rather than
|
|
|
|
popping immediately.
|
|
|
|
|
|
|
|
Text display:
|
|
|
|
|
|
|
|
* Text now supports embedded mode changes--special characters to
|
|
|
|
switch fonts, colors, scale, etc. within a line or within a
|
|
|
|
paragraph.
|
|
|
|
|
|
|
|
* Windows IME is better supported by Panda/Direct widgets
|
|
|
|
(e.g. PGEntry and/or DirectEntry) in fullscreen mode as well as in
|
|
|
|
windowed mode.
|
|
|
|
|
|
|
|
Model converters:
|
|
|
|
|
|
|
|
* dxf2egg and egg2dxf added to converters, as well as to inline
|
|
|
|
conversion supported via ptloader.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
------------------------ RELEASE 2004-03-29 ------------------------
|
|
|
|
|
|
|
|
Miscellaneous:
|
|
|
|
|
|
|
|
* We once again support the Microsoft VC6 compiler.
|
|
|
|
|
|
|
|
* The "pstats" program is now provided in the Windows environment as
|
|
|
|
part of pandatool. It is similar to "gtk-stats" on a Unix
|
|
|
|
environment, and can be used to view a real-time graph of
|
|
|
|
performance timing in a running Panda process. See
|
|
|
|
panda/src/doc/howto.use_pstats.
|
|
|
|
|
|
|
|
* New session recording and playback support allows capturing user
|
|
|
|
and network input to a disk file, for replaying later, offline.
|
|
|
|
Use "record-session filename.boo" and "playback-session
|
|
|
|
filename.boo" in your Configrc file.
|
|
|
|
|
|
|
|
* The genPyCode script now uses PythonWare's SqueezeTool to
|
|
|
|
"squeeze" the large number of generated .py files into a single
|
|
|
|
shared library, for substantially improved startup times on
|
|
|
|
Windows.
|
|
|
|
|
|
|
|
* The Task system now has substantially reduced overhead when many
|
|
|
|
doLater's are waiting in the system.
|
|
|
|
|
|
|
|
* The png image file type is now supported.
|
|
|
|
|
|
|
|
|
|
|
|
Rendering system:
|
|
|
|
|
|
|
|
* Introducing native DirectX9 graphics support, although we do not
|
|
|
|
yet support any features specific to DirectX9, such as
|
|
|
|
programmable shaders.
|
|
|
|
|
|
|
|
* DirectX7 and DirectX8 modules are now somewhat more robust.
|
|
|
|
|
|
|
|
* New support for offscreen rendering and render-to-a-texture, which
|
|
|
|
will become part of a general multipass-rendering interface.
|
|
|
|
Presently supported in OpenGL, with limited DirectX support. Use
|
|
|
|
GraphicsWindow::make_texture_buffer() to make a buffer you can
|
|
|
|
render into and apply the result as a texture map to objects in
|
|
|
|
your scene. The NonlinearImager in the distort directory is a
|
|
|
|
complex example of using this interface.
|
|
|
|
|
|
|
|
* Explicit support for the Mesa 3D library's software-based
|
|
|
|
offscreen rendering, allowing a Panda program to generate
|
|
|
|
offscreen images as a background process, independently of any
|
|
|
|
graphics card or desktop environment.
|
|
|
|
|
|
|
|
* GraphicsLayer and GraphicsWindow render order can now be easily
|
|
|
|
adjusted dynamically with set_sort() methods.
|
|
|
|
|
|
|
|
* Built-in frame rate meter can be activated by setting
|
|
|
|
"show-frame-rate-meter 1" in your Configrc file.
|
|
|
|
|
|
|
|
|
|
|
|
Scene graph:
|
|
|
|
|
|
|
|
* New tag system on PandaNodes allows storing of arbitrary string
|
|
|
|
data on nodes, keyed by a string dictionary. The
|
|
|
|
NodePath::get_net_tag() interface retrieves the data value for a
|
|
|
|
particular tag on a node or the nearest ancestor of the node.
|
|
|
|
NodePath::find() can search for a node in the scene graph with a
|
|
|
|
given tag or tag/value pair.
|
|
|
|
|
|
|
|
* Explicit shear transforms are now supported on nodes, as well as
|
|
|
|
in character animation tables.
|
|
|
|
|
|
|
|
* Characters now have an interface to control joint and slider
|
|
|
|
values dynamically, instead of strictly from an animation file.
|
|
|
|
Use Actor.exposeJoint() and/or Actor.controlJoint().
|
|
|
|
|
|
|
|
* Nurbs surfaces and curves can now be rendered directly by Panda,
|
|
|
|
which will tesselate them on the fly at some CPU cost. This is a
|
|
|
|
modeling convenience only; it is not intended to be used for
|
|
|
|
production code. Triangle strips are still the fastest way to
|
|
|
|
render complex surfaces.
|
|
|
|
|
|
|
|
* However, Rope.py is now provided as a high-level wrapper around
|
|
|
|
Panda's runtime NURBS curve evaluator; it can render dynamic
|
|
|
|
curves in a variety of ways.
|
|
|
|
|
|
|
|
* The egg library is now published to Python, allowing construction
|
|
|
|
of geometry on-the-fly by show code for convenience. This is also
|
|
|
|
intended as a developer's convenience more than a production
|
|
|
|
feature.
|
|
|
|
|
|
|
|
|
|
|
|
Text display:
|
|
|
|
|
|
|
|
* The special character \3 (ASCII 0x03) embedded in a text string
|
|
|
|
indicates the position of a soft hyphen when wordwrap mode is in
|
|
|
|
effect. The character \4 (ASCII 0x04) serves as a hyphenless
|
|
|
|
invisible break point.
|
|
|
|
|
|
|
|
* A default font is compiled in even if the FreeType library is not
|
|
|
|
available.
|
|
|
|
|
|
|
|
* pnmtext library added for rendering text directly into an image.
|
|
|
|
|
|
|
|
* New egg-mkfont utility uses FreeType to generate static font
|
|
|
|
models that Panda clients without FreeType can use to render text.
|
|
|
|
|
|
|
|
|
|
|
|
Collision and physics system:
|
|
|
|
|
|
|
|
* More robust collision interface, supporting NodePaths properly so
|
|
|
|
that collisions detected into (and from) particular instances of
|
|
|
|
nodes can be differentiated. CollisionEntry has a much simpler
|
|
|
|
mechanism for getting the intersection point and normal in an
|
|
|
|
arbitrary coordinate space defined by a NodePath, instead of the
|
|
|
|
user having to convert the coordinate space by hand.
|
|
|
|
|
|
|
|
* New CollisionVisualizer object to visually show collisions as they
|
|
|
|
are tested and detected, useful for optimizing collision
|
|
|
|
performance. Activate this with
|
|
|
|
base.cTrav.showCollisions(render).
|
|
|
|
|
|
|
|
* Implicit velocity system is now integrated with scene graph; the
|
|
|
|
relative velocity of moving nodes is automatically considered when
|
|
|
|
testing for most kinds of collisions. Use
|
|
|
|
NodePath::set_fluid_pos() to indicate that a node is moving
|
|
|
|
fluidly to its new position and should test for collisions along
|
|
|
|
the way (as opposed to the more traditional NodePath::set_pos(),
|
|
|
|
which unconditionally sets the node to its new position).
|
|
|
|
|
|
|
|
* Introduction of "tube" collision shapes, sometimes called
|
|
|
|
"capsules" in other libraries. It is a cylinder capped with
|
|
|
|
hemispheres.
|
|
|
|
|
|
|
|
* CollisionSolid::set_effective_normal() provides a way to define a
|
|
|
|
sloping surface with an apparently vertical normal, to prevent
|
|
|
|
characters standing on the surface from sliding down.
|
|
|
|
|
|
|
|
* Collision polygons now respect clipping planes.
|
|
|
|
|
|
|
|
* Many changes to physics system.
|
|
|
|
|
|
|
|
|
|
|
|
HTTPClient and net systems:
|
|
|
|
|
|
|
|
* More verbose error reporting.
|
|
|
|
|
|
|
|
* Better support for proxy servers, including SOCKS5 proxies.
|
|
|
|
|
|
|
|
|
|
|
|
Model converters:
|
|
|
|
|
|
|
|
* maya2egg converter now supports skeleton/morph animation files
|
|
|
|
fully, including soft-skinning, hard-skinning, and morphs (blend
|
|
|
|
shapes). NURBS and polygon meshes are both supported.
|
|
|
|
|
|
|
|
* A new Maya plugin called libmayapview allows opening a Panda
|
|
|
|
window from within Maya to view how the scene will look once it
|
|
|
|
has been converted to Panda.
|
|
|
|
|
|
|
|
* New soft2egg converter supports models and animation stored in
|
|
|
|
SoftImage 4.3 files. (Newer versions of SoftImage are not
|
|
|
|
supported.)
|
|
|
|
|
|
|
|
* New egg2flt program more or less reverses flt2egg.
|
|
|
|
|
|
|
|
* The ptloader Panda loader allows direct loading into Panda of most
|
|
|
|
model file types defined within pandatool: Maya, flt, and lwo.
|
|
|
|
Specify load-file-type ptloader in your Configrc file.
|
|
|
|
|
|
|
|
* New egg-optchar preprocessor improves character animation runtime
|
|
|
|
performance by eliminating unneeded joints. It can also
|
|
|
|
reorganize a skeleton and/or expose joints for the show code's
|
|
|
|
convenience.
|
|
|
|
|
|
|
|
* New egg-qtess utility converts NURBS egg files to polygon egg
|
|
|
|
files with either a trivial interface for quick conversions or a
|
|
|
|
sophisticated parameter file for more precise control. It
|
|
|
|
preserves soft-skinning and animation information.
|
|
|
|
|
|
|
|
* New visibility flag in egg format allows model files to define
|
|
|
|
invisible subtrees which will be initially stashed when loaded.
|
|
|
|
|
|
|
|
* The egg library now allows implicit forward references to vertex
|
|
|
|
pools, making it much easier to generate a valid egg file from a
|
|
|
|
third-party model format.
|
|
|