Normal quotes

This commit is contained in:
James Gregory 2013-12-30 18:34:31 +11:00
commit 18011c595a
352 changed files with 6040 additions and 6040 deletions

View file

@ -5,7 +5,7 @@
Getting proper front-to-back drawing order is a little more complicated
with polygons on nodes. As we walk the BSP tree front-to-back, in each
leaf we mark the polygons that are at least partially in that leaf, and
then after we’ve recursed and processed everything in front of a node,
then after we've recursed and processed everything in front of a node,
we then process all the marked polygons on that node, after which we
recurse to process the polygons behind the node. So putting the polygons
on the nodes saves memory and improves performance significantly, but
@ -35,7 +35,7 @@ most effective of which was replacing many calls to **malloc()** with
stack-based structures—beware of **malloc()** in performance-sensitive
code), Quake 2 levels are taking up to an hour to process. (Note,
however, that that includes BSPing, PVS calculations, and radiosity
lighting, which I’ll discuss later.)
lighting, which I'll discuss later.)
Some good news, though, is that in the nearly two years since we got the
Alpha, Pentium Pros have become as fast as that generation of Alphas, so
@ -45,14 +45,14 @@ John has always been a big advocate of moving code out of the runtime
program into utilities, and of preprocessing for performance and runtime
simplicity, but even he thinks that in Quake, we may have pushed that to
the point where it interfered too much with workflow. The real problem,
of course, is that even a huge amount of money can’t buy orders of
of course, is that even a huge amount of money can't buy orders of
magnitude more performance than commodity computers; we are getting an
eight-R10000 SGI compute server, but that’s only about twice as fast as
eight-R10000 SGI compute server, but that's only about twice as fast as
an off-the-shelf four-processor Pentium Pro.
The size of the PVS for each leaf is manageable because it is stored as
a bit vector, with a 1-bit for the position in the overall leaf array of
each leaf that’s visible from the current leaf. Most leaves are
each leaf that's visible from the current leaf. Most leaves are
invisible from any one leaf, so the PVS for each leaf consists mostly of
zeros, and compacts nicely with run-length encoding.
@ -66,7 +66,7 @@ specific viewpoint; this can cause two or three times as many polygons
as are actually visible to be considered. John has been researching the
possibility of an EVS—an *exactly visible set*—and has concluded that a
6-D BSP with hyperbolic separating planes could do the job; the problem
now is that he doesn’t know how to get the math to work, at least at any
now is that he doesn't know how to get the math to work, at least at any
reasonable speed.
An interesting extension of the PVS is what John calls the *potentially
@ -77,18 +77,18 @@ exactly the hearable space, because sounds could echo or carry further
than that, but it does serve quite nicely as a potentially *relevant*
space—the set of leaves that have any interest to the player. In Quake,
all sounds that happen anywhere in the world are sent to the client, and
are heard, even through walls, if they’re close enough; an explosion
are heard, even through walls, if they're close enough; an explosion
around the corner could be well within hearing and very important to
hear, so the PVS can’t be used to reject that sound, but unfortunately
hear, so the PVS can't be used to reject that sound, but unfortunately
an explosion on the other side of a solid wall will sound exactly the
same. Not only is it confusing hearing sounds through walls, but in a
modem game, the bandwidth required to send all the sounds in a level can
slow things down considerably. In a recent version of QuakeWorld, a
specifically multiplayer variant of Quake I’ll discuss later, John uses
specifically multiplayer variant of Quake I'll discuss later, John uses
the PHS to determine which sounds to bother sending, and the resulting
bandwidth improvement has made it possible to bump the maximum number of
players from 16 to 32. Better yet, a sound on the other side of a solid
wall won’t be heard unless there’s an opening that permits the sound to
wall won't be heard unless there's an opening that permits the sound to
come through. (In the future, John will use the PVS to determine fully
audible sounds, and the PHS to determine muted sounds.) Also, the PHS
can be used for events like explosions that might not have their center
@ -101,7 +101,7 @@ traced out into the world to see what polygons it strikes, and the
cumulative effect of all lights on each surface is stored as a light
map, a sampling of light values on a 16-texel grid. In Quake 2,
radiosity lighting—a considerably more expensive process, but one that
produces highly realistic lighting—is performed, but I’ll save that for
produces highly realistic lighting—is performed, but I'll save that for
later.
------------------------ --------------------------------- --------------------