1237 lines
50 KiB
Text
1237 lines
50 KiB
Text
|
------------------------ 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 pipeline that was absent from
|
||
|
the previous release.
|
||
|
|
||
|
* Textures were not being scaled to power-of-2 in some cases
|
||
|
* Fix various issues with shader inputs
|
||
|
* Bullet step function accidentally defaulted to step size of 0
|
||
|
* Use model-path for finding libRocket assets
|
||
|
* Fix inconsistent behavior with non-power-of-2 textures in rocket
|
||
|
* Fix regression with memoryviews
|
||
|
* Fix symbol error when loading libp3ffmpeg on Mac OS X
|
||
|
* Fix issues running maya2egg on Mac OS X
|
||
|
* PStats now tracks memory residency of graphics buffers
|
||
|
* Support wireframe and point rendering modes in OpenGL ES
|
||
|
* Add missing keys to libRocket keymap
|
||
|
* Fix incorrect parsing of numbers with exponents in Config.prc
|
||
|
* Various performance optimizations
|
||
|
* Fix for reading URLs mounted via the virtual file system
|
||
|
* Improve GLSL error reporting
|
||
|
* Fix issue with model disappearing in rare cases with GLSL
|
||
|
* Fix shader generator memory leaks and runtime performance
|
||
|
* Add M_confined mouse mode that keeps cursor in window
|
||
|
* Expose _NET_WM_PID to window managers in X11
|
||
|
* bam2egg supports collision sphere and plane solids
|
||
|
* Add sample program demonstrating mouse modes
|
||
|
* Add -L (lighting) and -P (graphics pipe) pview options
|
||
|
|
||
|
------------------------ 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.
|