bmodel

From Valve Developer Community
Jump to: navigation, search

A bmodel (short for brush model) is a model made out of BSP brushes. These are normally called from within the currently loaded BSP map file. Each bmodel uses its own BSP tree; there is a bmodel for worldspawn, as well as bmodels for each brush entity.

The struct used to define bmodels in 🖿bspfile.h is dmodel_t. The "D" might stand for "display", being consistent with other structs in the file.

With the exception of the bmodel used by worldspawn, are called from an entity using *# in the model KV, wherein # is a number representing the location of the bmodel in the BSP file. Worldspawn always uses bmodel 0, and does not require a model key.

  • In Quake Quake, and by extension GoldSrc GoldSrc, any entity can use bmodels from a separate BSP file from the currently loaded map. If a bmodel is loaded from a separate BSP separate, the worldspawn bmodel will be used.
Note.pngNote:All point entities can use MDLs, SPRs, bmodels, and separate BSP models interchangeably in Quake Quake and GoldSrc GoldSrc.
Some brush entities, such as func_illusionary or func_healthcharger can be used as point entities this way, although the defined model must have been prechached.
Tip.pngTip:In VHLT, pointing zhlt_usemodel to a cycler can be used to streamline this process, ensuring the entities are defined in the correct order in the compiled BSP.
Icon-Important.pngImportant:Bmodels contained in separate BSPs are usually fullbright, because they cannot inherit lighting info from the world.
Tip.pngTip:Use ericw-tools and compile with -dirtdebug to apply some generic ambient occlusion to the standalone BSP model's lightmaps, improving visibility, or (only in GoldSrc) manually paint lightmaps with newbspguy.
  • In Quake II Quake II, and by extension Source Source, only bmodels built into the current map can be used.[confirm]
Note.pngNote:Although the model KV is used for bmodels, sprites, and MDL models, they are not interchangeable in Source Source. In Quake II Quake II, only MD2 models and SP2 sprites are interchangeable.