Bmodel: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
m (→‎top: clean up, replaced: {{goldsrc → {{gldsrc)
Line 6: Line 6:
With the exception of the bmodel used by [[worldspawn]], are called from an [[entity]] using {{code|<nowiki>*#</nowiki>}} in the {{code|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 {{code|model}} key.
With the exception of the bmodel used by [[worldspawn]], are called from an [[entity]] using {{code|<nowiki>*#</nowiki>}} in the {{code|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 {{code|model}} key.


* In {{quake|4.1}}, and by extension {{goldsrc|4.1}}, 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.
* In {{quake|4.1}}, and by extension {{gldsrc|4.1}}, 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|All [[point entity|point entities]] can use [[MDL]]s, [[SPR]]s, and separate [[BSP]] models interchangeably.}}
:{{note|All [[point entity|point entities]] can use [[MDL]]s, [[SPR]]s, and separate [[BSP]] models interchangeably.}}
:{{modernImportant|Bmodels contained in separate BSPs are usually fullbright, because they cannot inherit lighting info from the world.{{tip|Use [[ericw-tools]] and compile with {{code|-dirtdebug}} to apply some generic ambient occlusion to the standalone BSP model's lightmaps, improving visibility.}} }}
:{{modernImportant|Bmodels contained in separate BSPs are usually fullbright, because they cannot inherit lighting info from the world.{{tip|Use [[ericw-tools]] and compile with {{code|-dirtdebug}} to apply some generic ambient occlusion to the standalone BSP model's lightmaps, improving visibility.}} }}

Revision as of 13:22, 4 January 2024

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, and separate BSP models interchangeably.
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.
  • In Quake II Quake II, and by extension Source Source, only bmodels built into the current map can be used.[confirm]