This page is incomplete! You can contribute information using GitHub issues or pull requests.

Plasma shaders are used for energy shield effects. They are mostly referenced as the modifier shader of an object like a biped, though the Sentinel biped instead references it via its gbxmodel (presumably because it uses a custom shape).

Known issues

The original PC ports of Halo (H1PC and H1CE) include a number of known renderer issues. On some PC hardware plasma shaders render incorrectly:

Notice how some areas of the plasma are cut off.

After the noise maps are sampled and blended, the resuling value is supposed to be mapped to transparent at high and low values and to opaque at midtones. Something about the shader math at this step is platform-dependent and results in half the values mapping to fully transparent instead of a blend.

The workaround is to duplicate the plasma shader and apply it in two layers. The duplicate shader should be identical except for using inverted noise bitmaps. It is not necessary to use this workaround in H1A because the shader has been fixed.

Structure and fields

intensity sourceenum
a out0x1
b out0x2
c out0x3
d out0x4
intensity exponentfloat
  • Default: 1
offset sourceenum?
offset amountfloat
  • Unit: world units
offset exponentfloat
  • Default: 1
perpendicular brightnessfloat
  • Min: 0
  • Max: 1
perpendicular tint colorColorRGB
parallel brightnessfloat
  • Min: 0
  • Max: 1
parallel tint colorColorRGB
tint color sourceenum
primary animation periodfloat
  • Unit: seconds
  • Default: 1
primary animation directionVector3D
primary noise map scalefloat
primary noise mapTagDependency: bitmap
secondary animation periodfloat
  • Unit: seconds
  • Default: 1
secondary animation directionVector3D?
secondary noise map scalefloat
secondary noise mapTagDependency: bitmap


Thanks to the following individuals for their research or contributions to this topic:

  • crow (Renderer issue workaround)
  • Kavawuvi (Invader tag definitions)
  • MosesOfEgypt (Tag structure research)