Skip to content
Murren edited this page Oct 11, 2023 · 3 revisions

Lightmaps and Vertex Colors in GIMI

By Murren, assisted by Festivity, LeoTorrez and HumR.
Note: Colors will be talked about in linear values (from 0 to 1).
In 8-bit values, this goes from 0 to 255.
8-bit color = 255 * linear color


Vertex Colors

Standard RGBA: (1, 0.502, 0.502, 0.5)
Vertex colors are color values stored in the vertex data.
There are four channels, each of them having their own function.

R - RED:

  • Technical term: Ambient occlusion
  • Description: Lighting intensity
  • Value 0: Permanent shadow
  • Value 1: Normal lighting
  • Standard value: 1
  • Use: Keep on 1, edit this in the lightmap instead.
  • Notes: This channel is multiplied with the Lightmap G channel, their function is combined.

G - GREEN:

  • Technical term: Shadow Ramp Width
  • Description: Shadow sharpness
  • Value 0: Sharp hard line between shadows and lighting
  • Value 1: Large smooth ramp from lighting to shading.
  • Standard value: 0.502
  • Use:
    • Keep on 0.502, unless there is a logical reason for shadows to be sharper or smoother.
    • Smoother clothing or metallic parts can have between 0.2 and 0.3.
  • Notes: The value is doubled by the shading engine, so 0.5 is the average.

B - Blue:

  • Technical term: Outline Z-Offset
  • Description: Depth index of the outline drawn around the object.
  • Value 0: Outline drawn in front
  • Value 1: Outline drawn in back
  • Standard value: 0.502
  • Use: Keep on 0.502, unless your object has a good reason to have its outlines drawn in front.
  • Notes: Visual effects are minimal; No one will see the difference generally.

A - Alpha:

  • Technical term: Outline Thickness
  • Description: Thickness of the outline drawn around the object.
  • Value 0: No outline at all
  • Value 1: Max outline thickness (3px if I recall correctly)
  • Standard value: 0.5
  • Use:
    • For eyes, most weapons and some objects, value will be 0.
    • Exposed skin has between 0.3 and 0.5.
    • Bigger objects have larger values between 0.7 and 0.9
    • Areas with small details have lower values between 0.1 and 0.3.
  • Notes: Visual effects are huge, please make sure to fix your outline thickness properly. The thickness is arguably the most noticeable of all vertex color properties.

Lightmaps

Standard RGBA: (0, 0.5, 0, 1)
Lightmaps are a key component in the shading of an object. They follow the same UVmap as the diffuse (texture).
There are four channels, each having its own function.

R - RED:

  • Technical term: Metallic Surface
  • Description: How metal-like something looks.
  • Value 0: Normal
  • Value 1: Full metallic shading
  • Standard value: 0
  • Use:
    • Always 0 for skin, clothes and normal details.
    • Any metal or similar reflective materials have a value of 1.
    • Usually, this value is either 1 or 0.
    • Exceptions are reflective materials like leather, they have a value of 0.2 - 0.8.
  • Notes: This channel corresponds with the Metallic value in Blender’s BSDF shading.

G - GREEN:

  • Technical term: Ambient occlusion
  • Description: Lighting intensity
  • Value 0: Permanent shadow
  • Value 1: Permanent lighting
  • Standard value: 0.5
  • Use:
    • Always keep below 0.5, except for eyes.
    • Skin and clothing exposed to light generally has a value of 0.5.
    • Occluded areas (like the neck, ears) have a value between 0 and 0.5.
    • Use for emphasizing depth details like cloth folds or muscle definition.
  • Notes: This channel is multiplied with the Vertex Color R channel, their function is combined.

B - BLUE:

  • Technical term: Gloss
  • Description: Roughness of an object
  • Value 0: Rough surface
  • Value 1: Super smooth surface
  • Standard value: 0
  • Use:
    • Always 0 for skin, clothes and normal details.
    • Any metal or similar reflective materials have a value between 0.5-1.
    • Exceptions are reflective materials like leather, they have a value of 0-0.5.
  • Notes: This channel corresponds to the Roughness value in Blender’s BSDF shading, but inverted.

A - ALPHA:

  • Technical term: Material Category
  • Description:
    • Indicates the category of the surface, and hence its shading.
    • The value is split up in up to five domains, with corresponding colors and shading.
    • It controls outline color, but also sometimes light effectiveness and occlusion.
    • The categories differ per character/object, but the values are always the same.
  • Values:
    • 0-0.2 OutlineColor (Usually black outlines, with cloth shading.)
    • 0.2-0.4 OutlineColor4 (Often where other materials go. Sometimes manipulates shading.)
    • 0.4-0.6 OutlineColor3 (Often where the skin category is stored. Flesh-colored outlines, with default shading.)
    • 0.6-0.8 OutlineColor5 (Often where other materials go. Sometimes manipulates shading.)
    • 0.8-1 OutlineColor2 (Often where the skin category is stored. Flesh-colored outlines, with default shading.)
  • Standard value: 1
  • Use:
    • Use the original lightmap to derive what category belongs to each value!
    • If your skin looks weirdly white and shadeless, this is usually because it’s in the wrong category (value 0-0.2).
    • Notes: This channel is important! The outline color is with the outline thickness one of the things that have the most visual impact. They can really make or break a mod.