[Gtkradiant] Custom Map File Format
SmallPileofGibs
spog at planetquake.com
Wed Mar 9 16:43:48 CST 2005
That sounds like a good way to proceed =).
GtkRadiant does in fact convert brushes to polygons in order to render
them in the OpenGL views.
In case you might be inspired, the algorithm it currently uses is:
for each plane p of the brush:
create an 'infinitely large' polygon 'winding' w that lies on p
for each plane c of the brush
if c is not equal to p:
clip w by c using a polygon-vs-plane clipping algorithm
Note: an 'infinitely large' polygon can be made by projecting the
maximum-world-extents bounding-box onto the plane.
The implementation of the polygon-vs-plane clipping algorithm is here:
https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk/radiant/winding.cpp
In the function 'Winding_Clip'.
This method seems to be a good blend of speed, precision and simplicity.
-SPoG
Wednesday, March 9, 2005, 8:31:45 PM, you wrote:
> I am familiar with BSP trees, and how Q3MAP compiles the map file, but I
> appreciate the input.
> I have an algorithm for converting a set of plane-based brushes into
> triangles suitable for rendering, but it is in pseudo-code, and through
> laziness, I haven't wanted to convert it to C.
> However, from the indication I am getting so far, it would be far less
> work to simply write a loader which converts the brushes into triangles
> on load, than it would be to do the same thing in GTKRadiant.
> When I write the code, I will make it fairly generic, and post it here
> for any further consideration you guys might have (in other words, use
> it, don't use it, laugh it, or preserve it as an example of Bad Coding,
> your choice).
> David Jackson
More information about the Gtkradiant
mailing list