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:
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
Field | Type | Comments | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
intensity source | enum | |||||||||||||||||||
| ||||||||||||||||||||
intensity exponent | float | |||||||||||||||||||
offset source | enum ? | |||||||||||||||||||
offset amount | float | |||||||||||||||||||
offset exponent | float | |||||||||||||||||||
perpendicular brightness | float | |||||||||||||||||||
perpendicular tint color | ColorRGB | |||||||||||||||||||
parallel brightness | float | |||||||||||||||||||
parallel tint color | ColorRGB | |||||||||||||||||||
tint color source | enum | |||||||||||||||||||
| ||||||||||||||||||||
primary animation period | float | |||||||||||||||||||
primary animation direction | Vector3D | |||||||||||||||||||
| ||||||||||||||||||||
primary noise map scale | float | |||||||||||||||||||
primary noise map | TagDependency : bitmap | |||||||||||||||||||
secondary animation period | float | |||||||||||||||||||
secondary animation direction | Vector3D ? | |||||||||||||||||||
secondary noise map scale | float | |||||||||||||||||||
secondary noise map | TagDependency : bitmap |
Acknowledgements
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)