From 9dc039b65211929d922674ba55989914a20b5208 Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 27 Jul 2004 18:06:46 +0000 Subject: [PATCH] add ReleaseNotes document --- doc/ReleaseNotes | 270 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 doc/ReleaseNotes diff --git a/doc/ReleaseNotes b/doc/ReleaseNotes new file mode 100644 index 0000000000..ac763bbd0a --- /dev/null +++ b/doc/ReleaseNotes @@ -0,0 +1,270 @@ +------------------------ 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 ptloadeder. + + + +------------------------ 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.