]> git.rm.cloudns.org Git - xonotic/netradiant.git/commit
q3map2: add -externalnames option to write explicit external lightmap names when...
authorThomas Debesse <dev@illwieckz.net>
Mon, 22 Aug 2022 13:32:06 +0000 (15:32 +0200)
committerThomas Debesse <dev@illwieckz.net>
Mon, 22 Aug 2022 13:32:06 +0000 (15:32 +0200)
commit614fde1f8431e944632e57f47936213217a93937
treec8bc0ee9a6bf0d19f609bfc4d7182a66a3d1a97d
parent5c8399a34c0ef000f30e70e9a996bd0cc3ff24fa
q3map2: add -externalnames option to write explicit external lightmap names when writing style shaders

It makes possible for game engines to run less code on each rendering
frame by not doing any computation to find the file.

On some game engines it may even make the lightmaps be processed
with simpler GLSL code as they will be processed as simple colormaps
instead of more complex code purposed for usual lightmaps with
features that aren't needed in such situation anyway.

Or some engine may implement a specific GLSL code to blend multiple
colormaps in a single pass without having to implement alternate code
for lightmaps.

Example with scripts/q3map2_gloom2.shader:

```
-gloom2/7C9AD47A87BC98CCA1FF30C4D788DD47
+gloom2/72353935F9542782B847B2E329A8CC80
 { // Q3Map2 defaulted
  {
  map $lightmap
  rgbGen identity
  }

  // Q3Map2 custom lightstyle stage(s)
  {
- map $lightmap
+ map maps/gloom2/lm_0000.tga
  blendFunc GL_SRC_ALPHA GL_ONE
  rgbGen wave noise 1 .75 1.6 4.2 // style 2
  tcGen lightmap
  tcMod transform 1 0 0 1 0.54492 0.10156
  }
  {
- map $lightmap
+ map maps/gloom2/lm_0000.tga
  blendFunc GL_SRC_ALPHA GL_ONE
  rgbGen wave noise 1 .5 3.7 4.9 // style 3
  tcGen lightmap
  tcMod transform 1 0 0 1 -0.38672 0.19043
  }
  {
- map $lightmap
+ map maps/gloom2/lm_0000.tga
  blendFunc GL_SRC_ALPHA GL_ONE
  rgbGen wave noise 1 1 2.6 1.3 // style 4
  tcGen lightmap
  tcMod transform 1 0 0 1 0.24023 0.19043
  }

  {
  map textures/gloom2/e8clangfloor05c.tga
  blendFunc GL_DST_COLOR GL_ZERO
  rgbGen identity
  }
 }
```
tools/quake3/q3map2/help.c
tools/quake3/q3map2/light.c
tools/quake3/q3map2/lightmaps_ydnar.c
tools/quake3/q3map2/q3map2.h