historical/toontown-just-works.git/build/nirai/panda3d/doc/InstallerNotes
2024-01-16 11:20:27 -06:00

183 lines
8.6 KiB
Text

------------------------ RELEASE 1.0.0 ---------------------------------
* We now have working exporters for Max5, Max6, Max7, Maya5, Maya6
* The Max exporter is dramatically improved:
- it now includes support for character studio.
- the polygon winding bug has been fixed.
* Panda no longer requires any registry keys or environment
variables. This means it is now possible to:
- run panda directly from a compact disc
- install multiple copies of panda on a single machine
- 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.
* 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.
* This is the first release to include not just a binary installer
for windows, but:
- a binary installer (RPM) for Fedora 2
- a binary installer (RPM) for Fedora 3
- a binary installer (RPM) for Redhat 9
- a binary installer for windows, as always
- a source tar-ball for linux
- a source zip-file for windows
------------------------ RELEASE 2004-12-13 ---------------------------------
* Basic server-client networking support is back in Panda3D. There is a
networking sample in the samples directory. This uses the Panda3d
distributed object system.The README file will explain how to run this.
Documentation of this if forthcoming.
* Panda3d now reduces the number of environment variables such that only 2
are needed now - PRC_PATH and PLAYER.
* GraphicsChannel and GraphicsLayer class have been removed from the
panda/src/display directory. Most Panda applications won't need to be
changed, since most applications simply use ShowBase.py (which has been
adjustedappropriately) to open a window and do the initial setup. For
those rare applications where you need to create your own DisplayRegions,
the makeDisplayRegion() interface has been moved from GraphicsLayer to
GraphicsWindow (actually, to GraphicsOutput, which is the base class of
GraphicsWindow). You can modify your application to call
base.win.makeDisplayRegion() accordingly. If you have something like
displayRegion.getLayer(), replace it with displayRegion.getWindow()
instead.
* Effective with the current version of Panda, the way that HPR angles are
calculated will be changing. The change will make a difference to existing
code or databases that store a hard-coded rotation as a HPR, but only when
R is involved, or both H and P are involved together. That is to say more
precisely, HPR angles with (R != 0 || (H != 0 && P != 0)) now represent a
different rotation than they used to. If you find some legacy code that no
longer works correctly (e.g. it introduces crazy rotations), try putting
the following in your Config.prc file:
temp-hpr-fix 0
To turn off the correct behavior and return to the old, broken behavior.
Note that a longer-term solution will be to represent the HPR angles
correctly in all legacy code. The function oldToNewHpr() is provided to
aid this transition.
* PandaNode definition has been changed to support setting an
into_collide_mask for any arbitrary node, in particular for any GeomNode.
It used to be that only CollisionNodes had an into_collide_mask. This
change obviates the need for CollisionNode::set_collide_geom(), which is
now a deprecated interface and will be removed at some point in the future.
Details:
There's now a NodePath::set_collide_mask() and
NodePath::get_collide_mask(), which operate on all CollisionNodes and
GeomNodes at and below the current node. By default, set_collide_mask()
will replace the entire collide mask, but you may also specify (via a
second parameter) the subset of bits that are to be changed; other bits
will be left alone. You can also specify a particular type of node to
modify via a third parameter, e.g. you can adjust the masks for GeomNodes
or CollisionNodes only.
The NodePath set_collide_mask() interface changes the into_collide_mask.
Those familiar with the collision system will recall that a CollisionNode
(but only a CollisionNode) also has a from_collide_mask. The
from_collide_mask of the active mover is compared with the into_collide_mask
of each object in the world; a collision is only possible if there are some
bits in common.
It used to be that only other CollisionNodes had an into_collide_mask. A
mover would only test for collisions with CollisionNodes that matched its
collide_mask. If you wanted to make your mover detect collisions with
visible geometry which had no into_collide_mask, you had to call
set_collide_geom(1). This allowed the mover to detect collisions with *all*
visible geometry; it was either an all-or-none thing.
Now that GeomNodes also have an into_collide_mask, there's no longer a need
for set_collide_geom(). A mover will detect collisions with any
CollisionNodes or GeomNodes that match its collide_mask. This means, for
the purposes of collision detection, you can use CollisionNodes and
GeomNodes pretty much interchangeably; simply set the appropriate bits on
the objects you want to collide with, regardless of whether they are
invisible collision solids or visible geometry.
(This should not be taken as a license to avoid using CollisionNodes
altogether. The intersection computation with visible geometry is still
less efficient than the same computation with collision solids. And visible
geometry tends to be many times more complex than is strictly necessary for
collisions.)
There's one more detail: every GeomNode, by default, has one bit set on in
its collide_mask, unless it is explicitly turned off. This bit is
GeomNode::get_default_collide_mask(). This bit is provided for the
convenience of programmers who still want the old behavior of
set_collide_geom(): it allows you to easily create a CollisionNode that
will collide with all visible geometry in the world.
Along the same lines, there's also CollisionNode::get_default_collide_mask(),
which is 0x000fffff. This is the default mask that is created for a new
CollisionNode (and it does not include the bit reserved for GeomNodes,
above). Previously, a new CollisionNode would have all bits on by default.
------------------------ RELEASE 2004-11-11 -----------------------------------
* Multiple mice can now be used with Panda3D. showbase has a list called
pointerWatcherNodes. The first mouse on this list is the system mouse. The
getMouseX() and getMouseY() will return coordinates relative to the
application window. The rest of the mice on the list will give raw mouse
positions and will change when they are moved on the screen.
In addition there are new events for mouse buttons. Each mouse will be have
a corresponding event. mouse1 will send mousedev1-mouse1, mousedev1-mouse2
and mousedev1-mouse3 events. mouse2 and any other mouse attached
will send similar events mousedev2-mouse1 etc.
The old mouse buttons work too. mouse1, mouse2, mouse3 events will be
triggered if that button is pressed on any mouse
------------------------ RELEASE 2004-10-13 -----------------------------------
General
* Release notes: Each release will now have an entry associated with
it in this document. This will be updated in reverse-chronological order.
Panda3D
* Distributed with this release is a working version of the SceneEditor
created in Spring 2004 at the ETC. Documentation will be forthcoming on the
website. This can be found in <InstallPath>/SceneEditor
* The latest version of FMOD is distributed with this release. The latest
version is 3.73.
* AudioSound object now allows more types of sound. These include wma and
ogg vorbis formats. This is valid when using the fmod sound system. Midi,
Mod, s3m, it, xm and such sequencer type file formats are not supported.
Exception - Midi files can be played. This is not fully implemented.
* A bug in SoundInterval is fixed. SoundInterval looping would incorrectly
add a minimum of 1.5 seconds to the sound. This has been fixed. Sound
looping problems in general should be fixed. Midi's still don't support
looping through the AudioSound object. They should loop through
SoundIntervals though.
* Cg support has been added to Panda3D. Documentation for this is
forthcoming.