From: edkiser AT jaxnet DOT com (M. Edward Kiser) Newsgroups: comp.os.msdos.djgpp Subject: Re: John Carmack : 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