General Editing Tips

From The DarkMod Wiki
Jump to navigationJump to search

A list of general tips which do not easily fall into any larger category; please add them as you discover them.

  • Floating upward through nonsolid func_statics: This is an issue for func_statics which are intended to be nonsolid to the player, for instance, foliage, bushes, grass, etc. If you create a func_static from a bush model, and then step into it, Doom recognizes this as a clipping problem. It attempts to correct this problem by floating you to the top of the model, and then trying to shake you off. I assume this is due to their being no defined collision model, and not even a real convex hull from which Doom can create one. A simple fix for this (assuming you want the func_static to be nonsolid) is to explicitly add the key pair:
"solid" "0"

  • Rendering distant buildings in a closed leaf: In a city scene, you might want to render the top of a distant tall building while still keeping the area it's in behind a closed portal in a sealed leaf (i.e., the rest of the street doesn't render). The way you do this is first build the area it's in as a sealed leaf portaled off as normal, except with one difference. In the "sky" brushes separating the building's area from the view area along the building's line of sight (probably over the roof of a smaller building in the foreground), instead of skyportal use caulk. It still allows the portals to close and renders like skyportal, but it allows some func_statics to render through it. Next convert the roof of your building that you want to be seen into func_static, and make one part of the func_static inside the leaf of the view area. This means as long as one part of the func_static is in an open leaf, the entire func_static will be rendered through the caulk. Now even when the area that the building is in is behind a closed portal, the building itself will still render in the view area, as if towering in the distance, without the big performance hit of rendering the entire street it's in.