Skip to content
Back to top
View this page

# BSPX Lumps

Here are the BSPX lumps we support. As with other Quake formats, byte order is little endian.

FACENORMALS

  This adds per-face, per-vertex normals, tangents, and bitangents.

  For maps using `_phong`, this allows in-engine dynamic lights to render with the same smooth/sharp edges that the baked lighting uses.

      // first, a table of vectors which are referred to later (for compression)
      uint32_t num_unique_vecs;
      float3 vecs[num_unique_vecs];

      // next, a per-vertex, per-face struct
      struct {
         struct {
            // these all index into `vecs`
            uint32_t normal_index;
            uint32_t tangent_index;
            uint32_t bitangent_index;
         } pervertex[face->numedges];
      } perface[num_dfaces];

  Generated with `light -wrnormals`.

  Supported engines: Quake II (Enhanced).

  See also, `VERTEXNORMALS` (which we don’t support).

Todo

This list is incomplete…