Ten years have passed since a buddy of mine started making a quake 3 level, and every now and then we add on to it. I'm going back and trying to optimize how brushes are laid out and I see he's making a lot of floors with trim that meet at 90 degree angles. I tend to make mine so that brushes meet exactly half way at a 45 degree angel, but is either way really better than the other?
I do mine like the diagram on the left, and he does his like the one on the right:
I always use the 45 degree option, because it feels a lot cleaner. It might be a percent or two more efficient in some way, but it's probably negligible in every scenario.
The "squared" method creates T-junctions, overdraw, higher polys, and may also cause other issues with light leaks and sparklies. Kill it with gasoline and a lit match.
Sounds about right, but what was the deal with T-junctions again? I forget why those are undesirable. Or is it simply for the fact when creating a triangle mesh from brushes, any T-junction will force it to make more triangles?
A T-junc causes a vertex at the end of one edge to intersect the middle of another edge. When welding a mesh together, a vertex can be welded with other coplanar vertexes, and edges can be welded with other coplanar edges, but a vertex can't be welded to an edge. The result of a T-junc is that the surface can't be properly welded together to form a proper mesh and can result in other problems like "sparklies", essentially micro-tears between coplanar edges that haven't been welded together.
Q3Map2 may try, though not always successfully, to correct for this by automatically cutting up the geometry to prevent T-juncs. Worse case scenario, far too many T-juncs may cause it to overflow a buffer and crash. Best case scenario, Q3Map2 fixes all the T-juncs but at the cost of a great deal more triangles due to automatically trying to cut up bunch faces, far more than if you had fixed the T-junction problem by mitering the edges to begin with.
(Edit: I'm tired and not sure if all that made sense)
My understanding of this (I'm sure the tech guys will correct me if I'm wrong), it that q3map2 splits brush faces into triangles, but is not able to split patches, so where a brush corner (vertex) meets the edge of a patch this results in sparklies. Therefore chopping up brushes surrounding patches into triangles, so that verts meets verts is necessary.
In many cases I find q3map2 does not split brush faces optimally (in the way dmap does), so I tend to map with all my brush work meeting corner to corner. Quite often you end up in a situation where using more brushes creates less tris in game.
Sparklies can also happen to brushes esp w/precise cut brushes. It seems that q3map2 dosent always set the brush/bsp verts as par they are in editor like in akward angles brushes or crazy small shapes like toroids