Any surface (flats or walls) can be rendered with shiny surface properties. This allows for some very interesting tricks to be created such as specular “reflections”. You can use a mask with the shiny surfaces to mask out areas of shininess but a mask can be used to also increase the effect of shininess on areas of a texture. Reflection definitions support the use of any of the new blending mode flags such as add and subtract.
Reflection
{
Texture = "";
# The wall texture this reflection will be associated with. A
# reflection can only be associated with either a texture or a
# flat, not both.
Flat = "";
# The flat this reflection will be associated with.
Flags = flaga | flagb | flagc etc...
# NEW in 1.9.0-beta6
# noiwad: Don't use this reflection if the resource is loaded from an IWAD.
# pwad: This reflection can be used with PWAD resources (for example custom textures).
# ext: This reflection can be used with external resources.
Blending mode = add;
# One of the bm_* flags defined in Flags.ded. By default
# reflections use additive blending.
Shininess = 1.0;
# Strength of the shiny effect. 1.0 is the maximum value. This
# is used as the alpha component when doing blending.
Min color { 0.0 0.0 0.0 }
# By default the shiny effect uses sector light as the basic color
# of the effect. The Min color RGB values (0..1) can be used to
# set a minimum light level for the effect so it'll show up even
# in very dark sectors.
Shiny map = "";
# Name of the external resource that is used as the shiny map for
# this reflection. By default the resource is searched in the
# LightMaps resource directory. The shiny map is mapped onto
# reflecting surfaces using a mapping that resembles cylindrical
# environment mapping. The dimensions of the map must be powers
# of two, for example 128 x 64 or 32 x 128.
Mask map = "";
# Name of the external resource that is used to mask out the
# shininess of a surfaces. The mask map is mapped onto surfaces
# using the same texture coordinates that are used for mapping
# regular textures. The darker the texel in the mask, the fainter
# the reflection becomes. The dimensions of the map must be powers
# of two, for example 128 x 64 or 32 x 128.
Mask width = 1.0;
# A factor for the width of the mask. This can be used to make the
# mask span beyond the mapping of the regular texture of the
# surface. For example, consider a surface with a texture that is
# 64 texels wide. Regardless of the mask's horizontal resolution,
# the mask is always mapped onto the regular texture so that their
# edges overlap. If the mask width value is 1.0, the mask is as
# wide as the 64 texel original texture. If mask width is increased
# to 2.0, the mask is mapped so that it is as wide as a 128 texel
# texture.
Mask height = 1.0;
# A factor for the height of the mask.
}