Mapdev:diffuse

From Spring
Jump to navigationJump to search

Diffuse

The colour of the terrain, then modified with the lighting values in mapinfo.lua

Example
Mapdev-diffuse.jpg Mapdev-diffuse-example.png
Example Diffuse Map Ingame Result

Specification

mapinfo.lua

The relevant sections of the mapinfo.lua file that effect the colour of the ground are in the Lighting subtable

local mapinfo = {
   ...
   lighting = {
      ...
      --// ground lighting
      groundAmbientColor  = {0.5, 0.5, 0.5},
      groundDiffuseColor  = {0.5, 0.5, 0.5},
      groundSpecularColor = {0.1, 0.1, 0.1},
      groundShadowDensity = 0.8,
      ...
   },
   ...
}

Image File

File Location The diffuse texture is chopped into 32x32 pixel tiles compressed using DXT1 and compiled into the smt using MapConv or MapConvNG.
File Format Any that Mapconv programs support
Colour Depth 8bpp
Channels RGBA
Resolution
Spring Map Size* pixels = Spring Map Size * 512
2 1024
4 2048
6 3072
... ...
32 16 384
* must be multiples of 2

Compression

The DXT1 compression is lossy, but in a consistent manner. all 32x32 tiles will have exactly the same size. To reduce the number of tiles saved in tile file(SMT) you can align graphical elements to a 32x32 pixel grid. MapConv can detect that a tile is repeated and reference it only once. This means that any repetition of the diffuse image, so long as it is aligned to a 32x32 pixel grid will result in a reduction in size.

  • Use tiled textures that are multiples of 32x32 in dimensions.
  • Place features like geovents and metal spots on a 32x32 grid.
  • Repeat as much as possible on a 32x32 pixel grid.