Metals

Material Albedo <R, G, B> Spec% Hard Notes
Steel <0.15, 0.15, 0.20> 80% 10 (“Isometal” for Privateer) Rust reddens diffuse, blackens specular.
Copper, <0.35, 0.12, 0.08> 40% 10 for naked conductors in coils and stuff.
Zinc <0.40, 0.40, 0.40> 30% 10 for hatches and covering plates, for a bit of variety. Doesn't rust.
Bronze <0.58, 0.42, 0.20> 60% 50 (“Plasteel” for Privateer)
Stainless/Nickel <0.50, 0.49, 0.48> 80% 30 (“Durasteel” for Privateer) Doesn't rust.
Titanium <0.60, 0.60, 0.60> 35% 20 (for hull and leading edges in Priv) Rusts at high temp in multi-hued patches, angle-dependent.
Magnesium Foam <0.70, 0.70, 0.70> 50% 05 ultra-low shininess metal for cap-ship armor plates, which in WC3 look like cement blocks.
Gold <1.00, 0.77, 0.37> 90% 90 (every ship should have some gold items. The exhaust pipes on the Galaxy could be gold)
Chromium <0.81, 0.85, 0.90> 90% 90 (Rust bores holes in specularity)
Aluminium <0.88, 0.90, 0.90> 95% 60 “Tungsten” for Privateer. Rust lowers shininess.


The above is very preliminary as of this writing. Each material should really specify separately how it rusts at high temperatures and how it is affected by time and weathering. And there should be inputs to the noodle for the user to specify whether this is a ship or a station (a station would have less scratches and from random directions), and if it's a ship, whether it is atmospheric capable (no high temperature rusts, otherwise).

Metal color keys


Baked inputs

  • UV layout mask (white on black)
  • PRTN
  • PRTP
  • Ambient occlusion
  • Frontal bake (yes, in addition to PRT, as we need clear shadowing for modulating scratches and stuff, small light source in front of ship)
  • Lightmap (bake of illumination by static lights and engine exhausts)
  • Baked Normalmap
  • Bumpmap Normalmap (other tools can do a better job than us at producing it from the bumpmap)


Manually painted inputs

  • Metals texture (uses color keys; must cover the whole ship; non-metal base materials use black)
  • Matte materials (colors go to diffuse; specular is made black)
  • Paints texture (colors are the paint colors; rest is black or transparent)
  • Grooves (negative parts of the bumpmap; darker greys on 50% grey)
  • Prominences (positive parts of the bumpmap; lighter greys on 50% grey)
  • Glow map (things that glow like lights, interior lights in cockpits, engines, etc.)
  • Glass Mask (color is glass tint, on black background).


Textures included with LaGrande

Grey-scale scratchy texture for shininess modulation of metals
Tileable height irregularities random scatter texturized) for a minute, global modulations of height map
Uncorrelated random scatter for dithering final textures prior to quantization at the output stage
Tileable red iron rust for application to iron rust mapping algorithm
Tileable, uncorrelated perlin for titanium-like, multi-hued rusts
Gyrated, tileable uncorrelated perlin above texture hue-rotated 90 degrees, for specular modulation of same
Tileable Impacts/Scratches random points smudged backwards (downwards in the texture)
Clumpy, random dirt, grey to brown for application to edges behind grooves and smudging, for dirt trails


Material processing in LaGrande Noodle

Metals processing

Metals are input via the metals.png, user-supplied texture. The colors used are color keys. Each metal identified by a color key has a unique processing node. This node knows what diffuse and specular colors to apply, how much shininess, as well as hardness (how deep to make scratches, relative to other metals), how it is affected by ageing (low temperature rust), and how it is affected by atmospheric entry, along leading edges (high temperature rust).

High temperature rust

A high temperature rust mask is computed. There are two additive sources to this mask: Frontal baking, which we can assume gives us a pretty good idea of where wind hits the hardest during atmospheric entry from space; and low level red glow in the glow map, which we can assume represents hot parts around the engines and cannons. This mask is then used to modulate the high temperature rusting effects specified for each material. Titanium is an interesting example, where high temperature rusting produces spotty, multicolored hue modulations that depend on view angle. The latter effect we fake by applying a hue-rotated rust mask to specular, relative to the diffuse mask (both supplied with LaGrande Noodle). But the rust mask is modulated by impacts and scratches, first.

Low temperature rust

Weathering rust tends to proceed from edges and features. Of course, there should be no rusting of space ships that are non-atmo-capable, as there is not much oxygen in space, but this consideration is left to the user via a weathering intensity input parameter. Grooves, holes and depressions are used as sources of creeping rust, spread by blurring and masking, modulated by a perlin noise texture supplied with the noodle. The resulting mask is then used to modulate the low temperature rusting effect specified for the particular metal. Steel, for instance, will lose specularity and acquire redness from a rust texture also supplied with the noodle. Titanium darkens. Aluminium loses specularity. Etceteras.
Low temperature rust is modulated also by (x+y)/z from the PRT bakes, so that it applies more to surfaces parallel to the forward vector.

Non-metal base materials

There are two ways to input other materials: There's a matte_materials.png input texture, where black or transparent areas are ignored. Any colors drawn there override the metals mask. The color is transferred directly to the diffuse material base, and blacks out corresponding texels in the specular and shininess base material textures.
The other way is by fully specifying a material via three textures: other_diffuse.png, other_specular.png, and other_shininess.png. Similarly, black or transparent areas are ignored, and any other colors override the metal and matte material masks.

Paints

Paints override (cover) base materials, where they are applied, except in deep grooves or holes, or where scratches or burning have removed it.
Paint diffuse colors are taken directly from the user-supplied paint mask. The control of glossiness (shininess) is parametric and global for paints, but matte paints can be introduced via the matte materials input texture. Paint is removed by scratches, exposing the metal or other material underneath. The specular color of paints is about one quarter to about one half the intensity of its diffuse color (increasing with specified shininess), but also, shininess causes desaturation of the specular color. Very glossy paints lose as much as 50% of saturation in their specular color.
Paints are also affected by sunlight exposure. The ambient occlusion bake is used to reduce blue channel gain for the more exposed areas. It is also made to cause cross-leaking between the red and green channels, causing bright greens and reds to fade towards yellow.
Frontal baking also affects the color of paint, causing it to peel off and turn brownish in spots. (Why would anyone paint leading edges of atmo capable ships, anyways?)
Finally, paints are also affected by the weathering (low temperature rust) mask, causing it to lose gloss and specularity.

Impacts and Scratches

A modulation mask is computed from the supplied frontal bake. Self-shadowing in the frontal bake will allow scratches and impacts to appear in areas not covered by other parts of the ship from the front. We'll probably want to take the square root of the frontal bake, first, so as to not have scratches fade too quickly. This mask is then multiplied by the included scratches texture to obtain the master scratches mask.
This master scratches mask will affect 3 things:

  • cause depressions in the height map
  • remove rust from metal surfaces
  • overwrite shininess
  • remove paint

But each of those effects may be applied with a different linearity.

Bumpmap

Bumpmap inputs are separate for grooves and protuberances, both for artistic and algorithmic convenience. The noodle will eventually combine them, with overwrite priority for protuberances. From the combined bumpmap, modulated by scratches and after a slight modulation by a surface irregularities texture that comes with the noodle, a normal map is produced, which is “angularly added” to the user-supplied normal map bake.
But the bumpmap inputs are used for a number of other things:

  • a bumpmap ambient shadow mask is produced by difference of gaussians, which is then used to modulate the baked ambient occlusion and PRT's.
  • grooves in the negative bump input have different effects depending on depth. At very shallow depth, they are considered mere depressions, and receive paint from the paint layer. Deeper groove switch the material to “zinc” (matte grey), and disable the reception of paint from the paints input texture. And as grooves get deeper, they will darken the zinc to black.
  • grooves are also used to detect edges of armor plates. Leading edges of armor plates initiate dirt smudges, and the other edges of armor plates may be the sources of creeping, low temperature rust.
  • protuberances mask out dirt trails.
  • detected leading edges of protuberances multiply frontal baking before it is used in other parts of the noodle; therefore protuberances tend to get more scratches and high temperature rusting than surrounding areas.
  • side-edges of protuberances originate “air marks”, which are whitish trails in diffuse that darken specular.

wc_info/modding/texturing_noodle_old.txt · Last modified: 2008/08/02 16:15 by monkhouse