Re: Map Files

Chris Carollo (carollo.1@osu.edu)
Mon, 22 Apr 1996 06:51:55 -0400

Date: Mon, 22 Apr 1996 06:51:55 -0400
From: Chris Carollo <carollo.1@osu.edu>
To: quake-dev@gamers.org
Subject: Re: Map Files

Bernd Kreimeier wrote:
> In my opinion, there are the following processing steps that have to
> be done *within QuakeEd*:
>
> define/modify planes of a single brush
> calculate a boundary representation of the brush.
> based on plane-plane-intersections
> add brush to the map as already done
>
> Note that the boundary representation is necesary, as human beings are
> not likely to think in infinite planes. We need the building blocks to
> be convex polyhedra, solid bricks of material. See QuakeEd screenshots,
> the top-down view.

I concur. IMO, the following steps are necessary:

1. Load MAP file and convert brushes from list-of-planes to vertex-edge
representation.
2. Allow users to move vertices, add/move brushes, and move/add edges.
Possible checks here that the sides of the brush remain coplanar.
Or, the editor could restrict the user to only moving vertices in
such a way as to preserve coplanarity...but this seems like it would
be overly complex and not really needed. Comments?
3. Convert brushes from vertex-edge list-of-planes representation.
If coplanarity wasn't checked before, definitely do it here.

As I see it, the only operation that is really complex is #1, and
possibly the coplanar checks. I'm sure there is information out there
on calculating the intersections of multiple planes, though.

> Note that all planes of one brush do intersect, but that planes of
> different brushes do not intersect. Brush-brush intersection
> is calculated using CSG with the polygons, not the planes.

True. Though you have to take into account case where polygons of
one brush lie completely in the interior of another brush. In this
case, the polygons won't intersect, but still need to be clipped.
I'm sure this is documented in a CSG source somewhere.

> What does "sealing the world" mean (mentioned by Abrash and Carmack),
> but removal of all outside surfaces that cannot be seen from
> the interior?

This is #1 on my question list - how does qbsp determine that certain
surfaces are "outside" the map? Like in the cube map that Carmack
gave us...how does it know that only 6 surfaces are ultimately going
to be used?

-Chris