delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/03/24/19:01:07

From: edkiser AT jaxnet DOT com (M. Edward Kiser)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: John Carmack <johnc AT idnewt DOT idsoftware DOT com>: Re: Question about Doom.
Date: Mon, 24 Mar 1997 20:36:19 GMT
Organization: Southeast Network Services, Inc.
Lines: 37
Message-ID: <5h6olj$qgr@news.southeast.net>
References: <199703211735 DOT JAA29516 AT netcom9 DOT netcom DOT com> <3332FA0B DOT 3418 AT shoreland DOT com DOT nospam> <3333707A DOT 3D06 AT erols DOT com>
Reply-To: edkiser AT jaxnet DOT com
NNTP-Posting-Host: ts11-023.southeast.net
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

It has been asked: what is sector flowing? What is a one-dimensional
completion mask? I think I can make guesses. Maybe they're wrong, but
I'll make them anyway.

I think Doom drew one vertical line at a time, sweeping left to right
to create a frame. My evidence is the "reduce detail" option that
halved the horizontal resolution but not the vertical. It just
repeated each line twice instead of drawing new ones. The
one-dimensional completion mask would probably be an array of booleans
that indicates whether each pixel in the current vertical line is
complete. For each scan line, Doom would draw front-to-back, walking
the BSP tree, visiting entities in each node, then walls and floors.
When the whole array is "true," the line is done.

If my guess about vertical lines is correct, Doom would work well in
Mode-X.

My guess on sector flowing is harder to explain. The method I was
thinking of is this: divide space into convex regions. Each region has
faces with normals pointing IN. You can draw the inside of any region
by drawing any face whose normal points toward you (not away.) But
that's the solid faces. The transparent ones have regions on the other
side, connected sort of like a linked list. So you recurse: draw the
region you're in, then if there's any part of the screen that was
transparent and still hasn't been drawn, draw the region on the other
side of it, as seen from the same point. No BSP needed, but every
region has to be convex, or split into convex pieces.

Oh, and PVS stands for _Potentially_ Visible Set, not Partial.

Those are my guesses. Now the dumb question. What is ray casting? Is
it a form of ray tracing?
--------
Ed Kiser (edkiser AT southeast DOT net)
"The man who does not read good books has no advantage over
the man who can't read them." -- Mark Twain

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019