Material { ID = "" Width = 0.0 Height = 0.0 Flags = flag1 | flag2 Layer { Stage { Texture = "" Offset { 0 0 } Tics = 0 Rnd = 0 Glow = 0.0 Glow Rnd = 0.0 } } Light { Pattern offset { 0 0 } Pattern skip { 0 0 } Stage { Offset { 0 0 } Distance = 0.0 Tics = 0 Rnd = 0.0 Color { 0 0 0 } Levels { 0 0 } Radius = 0.0 Bottom map = "" Side map = "" Top map = "" Halo radius = 0.0 Flare map = "" Flare texture = 0 # deprecated } } } ==== ID ==== [[:uri]] by which the material will be known. The ID is used when applying the material directly to a world surface (for example, in a [[:map_editor]]), or, when referencing it in other definitions. The IDs are considered //unique// within the defined namespace (i.e., only the //latest// Material with a given ID will be used). Currently there are **4** recognized [[:resource_uris#Material_namespaces|material namespace]] identifiers: * flats * sprites * system * textures The [[:material]] documentation details their use and the mechanics of the abstraction with regard to mod compatibility. ==== Height/Width ==== The dimensions of the material, in world units. The material dimensions need not equal those of the texture(s) used by it's [[#layer|layer]]s. Allowing the material to be scaled independently. ==== Flags ==== ^ Name^ Description | | dontdraw| Surfaces with this material will never be drawn. | | skymask| Surfaces with this material will cut a "window" through which the sky is visible. The layers of the material itself will never be drawn. | ==== Layer ==== Currently only **1** layer is supported in a material. (Support for more layers will be added later). ; Stage : Stages are used for animating the properties of a texture layer over time. A layer can have many stages and will cycle through each in the defined order. ; Texture : [[:uri]] of the [[:texture]] resource to use during this stage. For example:Texture = "Flats:FLOOR4_8"; ; Offset : Offset to the texture origin in material space. ; Tics : Length of the stage in tics. ; Rnd : Random value to be applied to tics. ; Glow : Strength of the light emitted by this material (self-illumination). ; Glow Rnd : Independent glow strength randomization factor. ==== Light (1.10 →) ==== {{ file:doom_light_decorations.jpg?235x0}} Up to 16 light decorations can be attached to the material. Using light decorations one can embellish a material with a wide variety of (possibly animated) lighting effects. The order in which lights are defined does not matter. For each world surface using the material, Doomsday will automatically project lights into the world relative to the [[http://en.wikipedia.org/wiki/Normal_%28geometry%29|surface normal]] and according to the repeat pattern you define. === Pattern offset === Used with pattern skip to offset the origin of the pattern. For example: Pattern offset { 1 0 } # shift the origin of the pattern one full horizontal repeat === Pattern skip === Normally the light is repeated on a surface as many times as the texture or flat repeats. The pattern skip values allow sparser repeats for horizontal and vertical patterns, respectively. For example: Pattern skip { 1 2 } #> light appears on every second horizontal repeat and every third vertical repeat. <# === Stage === Stages are used for animating the properties of a light over time. Each light can have many stages and will cycle through each in the defined order. Using stages it is possible to animate a wide variety of interesting lighting effects. ; Tics : Length of the stage in tics. ; Rnd : Random value to be applied to tics. ; Offset : Origin of the light in material space coordinates. ; Distance : Distance of the light from the surface, in world space units. Doomsday will //project// from the light origin along the surface normal to calculate the 3D position of the light in world space. ; Color : RGB color/intensity (values 0-1) of the light. ; Radius : Radius of the light in world space. ; Levels : Two integers (0-255) that mark the sector light levels where the light is at zero and maximum brightness, respectively. The first level can be higher than the second. The behavior is then reversed: the light is at full brightness only below the lower light level. For example: Levels { 100 200 } #> Not visible below light level 100 and fades to full brightness when nearing light level 200. Fully-bright over 200. <# Note: When both the minimum and maximum values are equal (irrespective of value) the levels will be ignored because the intended behavior is ambiguous. ; Bottom/Side/Top map : Name of the light map to use when casting light in that direction. The //bottom// map is used for floor planes, the //top// map for ceiling planes and the //side// map for walls. If left blank (the default), the default linear falloff texture for round lights is used. Use ''-'' to disable the map entirely. (No light will then be cast in that direction). ; Halo radius : Radius of the halo/flare in screen space. Zero means no halo is rendered. A halo radius of **1.0** produces quite a large flare! ; Flare map : Name of the flare map (i.e., texture) to use for the halo. For example:Flare map = "myflaremap.png" # loaded from the data//flaremaps folder Alternatively, Doomsday provides a small built-in selection of flare maps, which are specified by their unique ID: ^ ID^ Description | | 0| Smart algorithm which selects a built-in flare map dynamically, according to the attributes of the light and relative position of the viewer. | | 1| [[http://en.wikipedia.org/wiki/Airy_disk|Airy disk]] corona, with subtle noise. | | 2| Inverse diffraction disc. | | 3| [[http://en.wikipedia.org/wiki/22%C2%B0_halo|22° halo]]. | | 4| Burst with cross formation of [[http://en.wikipedia.org/wiki/Light_pillar|light pillars]]. | For example:Flare map = "1" # Use the default, Airy disk style corona. === Flare texture (deprecated) === Built-in flare map (i.e., texture) ID to use for the halo.