Re: PVS generation

Troy Stephens (tstephens@wesleyan.edu)
Tue, 11 Jun 1996 18:21:09 -0400

Date: Tue, 11 Jun 1996 18:21:09 -0400
From: Troy Stephens <tstephens@wesleyan.edu>
To: quake-dev@gamers.org
Subject: Re: PVS generation

Bernd Kreimeier wrote:
>
> See the summary of Michael Abrash's article on the
> Quake Developers Pages (VSD - Visible Surface
> Determination), and the Info(5) mail in the june
> archive. See especially the PhD thesis by Seth
> Teller which is available online (pointer on said
> page), and clarifies some issues.

Thanks. The message you mentioned helped a bit.
I also downloaded the first part of Seth Teller's
thesis this morning (and learned that lpr truncates
postscript files bigger than 1 meg on the Unix
machine I regularly use!). I had the opportunity
to meet Seth this past semester when he (an alum of
our physics dept.) dropped by to give a talk about
his work. Glad I didn't miss that one. The
walkthru video he showed was pretty darn impressive
for a 3/4 million polygon dataset. I'm also interested
in how John Carmack implemented his version, though,
since it is probably quicker on the precomputation end,
and adequate for models more on the order of 10,000
polygons in complexity.

> The basic idea is determining "portals": polygons
> that allow for looking into adjacent leafs. As far
> as I understand, one takes each portal of a given
> leaf, and determines some kind of beam tree/
> frustrum through the portals in adjacent leafs,
> and so on. The generated frustrums/beams will
> be split and cut by each subsequent portal, until
> they are completely stopped by a wall.

This much makes sense. I think the detail that I'm
missing, though, is how the origin(s) for the beam
tree(s) through a portal is/are selected. I'll have
to see what Seth Teller has to say about this.

> Doing a simple raycasting from each center of
> a leaf might serve as a "fast vis" function.
> Clipping by distance is another idea that will not
> correctly determine a PVS, but will be fast. Any
> other ideas?

The trick with this PVS stuff, of course, is, failing
all else, you have to be conservative: it's okay (though
undesirable) to mark a leaf that can never be visible
from leaf X to be potentially visible from leaf X, but
you can't mark a leaf as invisible from leaf X if you
should be able to see any part of it from at least one
viewpoint in the leaf X subspace...

I'll let you know what I find out after giving Seth's
thesis a look. Thanks again for the pointers!

-Troy

/\/\o Troy Stephens '97
/ \ \/\ Wesleyan University
/ \ \ \ tstephens@wesleyan.edu
----------------------------------------------------------------------------
http://www.con.wesleyan.edu/~tstephens/tstephens.html