As usual
sektor2111 will quote the very man he fanboys over without even trying to understand a single damn thing of what he was actually talking about, and then "yelling" at others for not doing the proper "search".
Anyway, trying then to shed a bit more light on the matter myself then:
Subtractive terrain is not inherently better nor worse than additive terrain, they both make BSP cuts, it's just that one is subtractive and the other additive, there isn't much more to say about this, as far as I know, it's a pure CSG difference.
And additive can indeed be slightly worse because you need to subtract a cube first given that the editor is subtractive by default without the possibility to change it to additive (although the functionality is there as far as I am aware), which inherently creates some more BSP nodes and cuts and whatnot, although it's a negligible difference imo.
However, what Higor was actually trying to point out there, is actually a fact that goes for any BSP shape you don't intend to subtract from: make it a semi-solid.
Most mappers will run from semi-solids like if they were the plague that would screw their entire maps over, however they are the friendliest BSP additive type the engine has, being just highly misunderstood by the general community.
They do not add any extra BSP cuts (unlike every other type), so you can add as many of them as you like and BSP-wise they won't mess anything up at all elsewhere, they're safe to add.
But it's also a fact that they are not problem-free, and this is the main reason why most mappers run away from them instead of loving them, as they have a few cons:
- you cannot use it to create things like trims and some floor/wall/ceiling details which consist in sinking the BSP shape onto another surface, as solid types take priority (and subtractive is also solid);
- the most common bug they have is an occlusion bug where the surfaces may reverse their behavior: are hidden when you see them, and are rendered when they are supposed to not be seen.
The last problem is the main reason mappers run away from them, and is a problem caused by the very same property that makes them safe to use BSP-cut-wise: rather than adding more BSP cuts when added, they receive all of them instead, their polys are split and cut down by every other solid and non-solid BSP in the map, which also means that with semi-solids the number of nodes will be lower, but the number of polys to render may be higher (due to the surfaces being cut from many different directions), although the latter is not necessarily true, especially if the cuts come mainly from strictly cubic shapes, instead of diagonal cuts made by other odd or rounder shapes.
Because of this, semi-solids are also used in a way to reduce the number of cuts overall, simplifying the BSP tree, and thus also reducing the chance of nasty HOMs and collision issues.
This is why mappers who actually use semi-solids, tend to reserve that usage to the most complex shapes that they have, so that those complex shapes do not add a ridiculous amount of nodes for no gain whatsoever (exotic shapes, or even things like stairs), which is part of what Higor is suggesting there by advising to use a semi-solid terrain rather than subtracting it, since terrain is up there with the most complex BSP shapes you can create, they are generally very "random", without any symmetry, to look as natural as possible.
As for the occlusion problem, it's directly caused by these cuts, generally when a cut passes along the surface plane (think of the cut and the surface being on top of one another, like 2 sheets of paper stuck together), where it sometimes induces the surface to think it should be hidden instead of visible.
To fix this, what mappers tend to do, which is also Higor's suggestion with his terrain, is to offset the semi-solid BSP a bit, even if 1uu from the ground or whichever solid surface it's intersecting, so it no longer gets those surfaces caught by these cuts, thus drastically reducing the chance of this occlusion bug from ever happening.
And when that doesn't work, you could just turn that shape, or some other shape in the map, to solid to change the cuts a bit, which is generally enough to solve it, but there are times when it's trickier than that and you have to take time toggling BSP types, which is another reason why mappers tend to avoid them.
So, in the end, the
TL/DR version is:
- if you are doing terrain and you don't intend to subtract from it, make it a semi-solid instead, to avoid the terrain complexity from interfering with what is otherwise a map made of simpler shapes, BSP cut-wise;
- sometimes you may want to offset it a little to avoid occlusion bugs, or toggle some other shapes between semi-solid and solid to influence the BSP cuts (although personally I prefer the latter, as the former may lead to a break of immersion if noticed, or gameplay bugs where things can pass through where they shouldn't, where this spacing is).
If you want an example of a lot of semi-solids in action, you can check my latest map which uses a ton of them, and some shapes are fairly complex:
viewtopic.php?f=5&t=12401