Transparent chicago extended shaders are essentially identical to shader_transparent_chicago, but have an additional 2-stage block used when video hardware does not support more than 2 maps in a shader (which can be simulated with arguments). There is no reason to use this shader type over shader_transparent_chicago on modern systems.

See shader_transparent_chicago for more documentation.

Structure and fields

FieldTypeComments
numeric counter limituint8
shader transparent chicago extended flagsbitfield
FlagMaskComments
alpha tested0x1
decal0x2
two sided0x4
first map is in screenspace0x8
draw before water0x10
ignore effect0x20
scale first map with distance0x40
numeric0x80
first map typeenum
OptionValueComments
2d map0x0
first map is reflection cube map0x1
first map is object centered cube map0x2
first map is viewer centered cube map0x3
framebuffer blend functionenum
OptionValueComments
alpha blend0x0
multiply0x1
double multiply0x2
add0x3
subtract0x4
component min0x5
component max0x6
alpha multiply add0x7
framebuffer fade modeenum
OptionValueComments
none0x0
fade when perpendicular0x1
fade when parallel0x2
framebuffer fade sourceenum
OptionValueComments
none0x0
a out0x1
b out0x2
c out0x3
d out0x4
lens flare spacingfloat
  • Unit: world units
lens flareTagDependency: lens_flare
extra layersBlock
  • HEK max count: 4

Warning: Using a shader with extra layers on an object with transparent self occlusion enabled causes Sapien to crash.

FieldTypeComments
shaderTagDependency: shader
maps 4 stageBlock
  • HEK max count: 4
  • Max: 4
FieldTypeComments
flagsbitfield
FlagMaskComments
unfiltered0x1
alpha replicate0x2
u clamped0x4
v clamped0x8
color functionenum
OptionValueComments
current0x0
next map0x1
multiply0x2
double multiply0x3
add0x4
add signed current0x5
add signed next map0x6
subtract current0x7
subtract next map0x8
blend current alpha0x9
blend current alpha inverse0xA
blend next map alpha0xB
blend next map alpha inverse0xC
alpha functionenum?
map u scalefloat
map v scalefloat
map u offsetfloat
map v offsetfloat
map rotationfloat
mipmap biasfloat
  • Min: 0
  • Max: 1
mapTagDependency: bitmap
u animation sourceenum?
u animation functionenum
OptionValueComments
one0x0
zero0x1
cosine0x2
cosine variable period0x3
diagonal wave0x4
diagonal wave variable period0x5
slide0x6
slide variable period0x7
noise0x8
jitter0x9
wander0xA
spark0xB
u animation periodfloat
  • Unit: seconds
  • Default: 1
u animation phasefloat
u animation scalefloat
  • Unit: world units
  • Default: 1
v animation sourceenum?
v animation functionenum?
v animation periodfloat
  • Unit: seconds
  • Default: 1
v animation phasefloat
v animation scalefloat
  • Unit: world units
  • Default: 1
rotation animation sourceenum?
rotation animation functionenum?
rotation animation periodfloat
  • Unit: seconds
  • Default: 1
rotation animation phasefloat
rotation animation scalefloat
  • Unit: degrees
  • Default: 360
rotation animation centerPoint2D
FieldTypeComments
xfloat
yfloat
maps 2 stageBlock?
  • HEK max count: 2
  • Max: 2

This block is used instead of maps 4 stage on older video hardware.

extra flagsbitfield
FlagMaskComments
don't fade active camouflage0x1
numeric countdown timer0x2
custom edition blending0x4

Custom edition originally had an incorrect implementation of the multiply and double multiply framebuffer blend functions for transparent shaders which made fully dark pixels transparent. MCC is fixed but this flag allows modders to use custom edition's blending, which can help when porting legacy tags to the updated engine.

Acknowledgements

Thanks to the following individuals for their research or contributions to this topic:

  • Jakey (Explaining purpose of this tag)
  • Kavawuvi (Invader tag definitions)
  • MosesOfEgypt (Tag structure research)