David Luebke (luebke++at++cs.unc.edu)
Tue, 26 Mar 1996 21:31:07 -0500 (EST)
This is to announce the release of the pfPortals visibility software
for Performer 2.0. The current release is a straightforward port of
the pfPortals package for Performer 1.2 and does not take advantage of
any of 2.0's new features yet. Eventually I'll have a C++ API, better
integration with standard Performer culling, and some other neat
features, but the existing version should be enough to get you
going. Introducing the new features will extend rather than change the
existing API, so go ahead and check out the new version -- upgrading
to future releases should involve minimal effort.
PfPortals is a FREE public domain library which provides portal-based
culling in Performer applications. The package can be downloaded via
anonymous ftp at:
ftp.cs.unc.edu:/pub/users/luebke/pfPortals.tar.Z
or over the World Wide Web at:
http://www.cs.unc.edu/~luebke/pfPortals/visibility.html.
New in pfPortals2.0:
- Full support for multiprocessing
- A "builder" API for easily constructing pfPortal-compatible scenes
- fltLoader, a Performer library for reading MultiGen 14.2
OpenFlight (tm) files with portal information embedded in
the comments.
- perfport, a simple perfly-based application designed to work
with pfPortals and fltLoader.
- Numerous bug fixes, cosmetic code cleanups, etc.
Documentation is provided in html and postscript form. Here is an
extract from the introduction:
------
The library consists of a number of CULL and DRAW callbacks which are
attached to nodes in the Performer scene graph, and an interface for
controlling the behavior of those callbacks. The pfPortals library was
developed by David Luebke at the University of North Carolina during
the 1995 Spring semester.
The portal-based culling approach attempts to improve rendering
performance for large models by culling away portions of the model
which are completely occluded. It works best in scenarios such as
architectural walkthroughs, where most of the model is typically
hidden from the viewer by walls, floors and ceilings. Portal-based
culling subdivides the model into cells and portals. A cell is a
polyhedral volume of space; a portal is a transparent 2D region upon a
cell boundary that connects adjacent cells. Cells can only "see"
other cells through the portals. In an architectural model, the cell
boundaries should follow the walls and partitions, so that cells
roughly correspond to the rooms of the building. The portals likewise
correspond to the doors and windows through which neighboring rooms
can view each other.
The pfPortals library implements the portal-based culling scheme
described in "Portals and Mirrors: Simple, Fast Evaluation of
Potentially Visible Sets", by David Luebke and Chris Georges, in the
Proceedings of the 1995 Symposium on Interactive 3-D Graphics (April
1995; ACM Press). Briefly, this algorithm determines what cell
contains the viewer, and what portals of that cell are visible to the
viewer. Next the code recursively determines what portals of adjacent
cells are visible through the portals already determined to be
visible. This approach accumulates a list of visible cells without
considering portions of the model far removed from the visible set.
--Copyright--
The pfPortals library is a public domain software package and may be freely
used, modified, and distributed, provided certain conditions are met. The
following copyright appears in the source code and applies to this
documentation as well:
/***************************************************************************\
Copyright 1995 The University of North Carolina at Chapel Hill.
All Rights Reserved.
Permission to use, copy, modify and distribute this software and its
documentation without fee, and without a written agreement, is
hereby granted, provided that the above copyright notice and the
complete text of this comment appear in all copies, and provided that
the University of North Carolina and the original authors are
credited in any publications arising from the use of this software.
IN NO EVENT SHALL THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL
OR THE AUTHOR OF THIS SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF NORTH CAROLINA AND/OR THE
AUTHOR OF THIS SOFTWARE HAVE BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
The author of the pfPortals1.2 software library may be contacted at:
US Mail: David Patrick Luebke
Department of Computer Science
Sitterson Hall, CB #3175
University of N. Carolina
Chapel Hill, NC 27599-3175
Phone: (919)962-1825
EMail: luebke++at++cs.unc.edu
\*****************************************************************************/
Enjoy!
Dave
-- David Luebke luebke++at++cs.unc.edu
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:35 PDT