68
edits
Changes
m
It's Its result is the same as [[#dif|dif]] with transparency controlled by multiplication between vertex alpha color and base texture alpha channel.
no edit summary
=== building.add.env.day ===
Use this material if you want your building windows to reflect at day-time and be lit at night. It shall be more or less used on distant "panorama" buildings as they don't need advanced features from [[#window.day|window.day]] / [[#window.night|window.night]].
It effectively switches two materials depending on the time of the day. During the day it uses [[#dif.spec.add.env|dif.spec.add.env]] material with texture for reflections and at night switches to [[#dif.lum.spec|dif.lum.spec]] in order for windows to light be lit at the night.
The texture must have alpha channel on places where it should have reflections and light at night.
=== building.day ===
Same as [[#building.add.env.day|building.add.env.day]] without reflection component.
It effectively switches two materials depending on the time of the day. During the day it uses [[#dif.spec|dif.spec]] material where alpha is used as specular map and at night switches to [[#dif.lum.spec|dif.lum.spec]] in order for windows to light be lit at the night.
=== building.lvcol.day ===
Same as [[#building.day|building.day]] with extra multiplication of vertex color.
During the day vertex color is multiplying specular map, on the other hand during the night vertex color is multiplying luminance.
=== dif.anim ===
Same as [[#dif|dif]] with extra behaviour of blending over time between base and over texture.
Extra auxiliary setting in this shader defines animation speed, meaning how quickly textures are switched.
=== dif.lum ===
Same as [[#dif|dif]] with additional linear interpolation calculation between "dif" shader result and base texture RGB colors by factor of base texture alpha channel. As a result this shader will give you lit surfaces during the night, where amount of surface lit is donated by base texture alpha channel.
Example usage of this shader are dashboard and gps surfaces in truck inside Euro Truck Simulator 2 game.
==== Useful flavor combinations ====
# '''"dif.lum.decal.over"''' - decal part of shader name donates ability to use lightning model from the surfaces lying behind geometries using this shader and over part of shader name represent transparency blending of material, where alpha with value 0 means completely transparent and alpha with value 255 means non transparent. Example usage of this shader are lit icons on buttons in truck cabin which shall be:
# * lit to reflect effect of back light,# * transparent around icon to blend on the button below,# * use the lightning model from the surface below again for blending on the button surface.
=== dif.lum.spec ===
Similar as [[#dif.lum|dif.lum]] with difference that surface has additional specular map shading as [[#dif.spec|dif.spec]].
=== dif.spec ===
=== dif.spec.add.env ===
Same as [[#dif.spec|dif.spec]] with additional reflection pass and texture.
==== Useful flavor combinations ====
=== dif.spec.add.env.nofresnel ===
Same as [[#dif.spec.add.env|dif.spec.add.env]] without fresnel attribute and computation, therefore is slightly cheaper to compute.
=== dif.spec.fade.dif.spec ===
=== dif.spec.mult.dif.spec ===
Same as [[#dif.spec|dif.spec]] with one more texture which color and alpha is multiplied with base texture.
Example usage in Euro Truck Simulator 2 is trailer where company texture is multiplied with base texture of the trailer.
=== dif.spec.mult.dif.spec.add.env ===
Same as [[#dif.spec.mult.dif.spec|dif.spec.mult.dif.spec]] with additional reflection pass and texture.
=== dif.spec.mult.dif.spec.iamod.dif.spec ===
Special use shader based on [[#dif.spec.mult.dif.spec|dif.spec.mult.dif.spec]] and is usually used for building walls.
Shader is combining two multiplied opaque textures with third inverse-vertex-alpha (iamod) texture. The third texture should represent decal/dirt/wear layer where texture alpha channel and vertex alpha controls how strong this decal application is. Vertex color alpha with value 0 will apply the most and value 0.5 won't apply third layer at all.
=== dif.spec.oclu ===
Behaves in similar way as [[#dif.spec.mult.dif.spec|dif.spec.mult.dif.spec]] but the second texture in this case is using gray-scale image (only one channel) which results in better performance.
General usage of this shader is as recognized as using [[#dif.spec|dif.spec]] with "ambient occlusion" texture.
=== dif.spec.oclu.add.env ===
Same as [[#dif.spec.oclu|dif.spec.oclu]] with additional reflection pass and texture.
=== dif.spec.over.dif.opac ===
Same as [[#dif.spec|dif.spec]] with extra mask texture which color is mixed with base texture color by factor of alpha from mask texture.
=== dif.spec.weight ===
Same as [[#dif.spec|dif.spec]] with modified specular light.
It's mostly used for roads and asphalts, due to the distinct feel of specularity and diffuse properties of such surfaces.
=== dif.spec.weight.add.env ===
Same shader as [[#dif.spec.weight|dif.spec.weight]] with additional reflection pass and texture.
=== dif.spec.weight.mult2 ===
Special case shader created mostly for road surfaces combining base texture with "smeared top layer". Smeared layer is donated by multiplication texture and mixed by both textures alpha channels.
This shader shall be replaced with simple [[#dif.spec.weight|dif.spec.weight]] instead if possible.
=== dif.spec.weight.mult2.weight2 ===
Transition shader between two shaders of [[#dif.spec.weight.mult2|dif.spec.weight.mult2]] for simulating transitional areas (usually road shoulders).
Fading between first and second shader is done by vertex color alpha, where value 0 will use only first layer and value 0.5 will use only second layer, any value in-between will mix both layers respectively.
This shader shall be replaced with [[#dif.spec.weight.weight.dif.spec.weight|dif.spec.weight.weight.dif.spec.weight]] instead if possible.
=== dif.spec.weight.weight.dif.spec.weight ===
Transition shader between two shaders of [[#dif.spec.weight|dif.spec.weight]], where texture for first shader is presented as base and texture for second shader as over texture.
Fading between the two is done by vertex color alpha, where value 0 will use only base texture layer and value 0.5 will use only over texture layer, any value in-between will mix both layers respectively.
=== dif.weight.dif ===
Transition shader between two shaders of [[#dif|dif]] where base texture presents texture for first shader and over texture presents texture for second shader.
Fading between the two is done by vertex color alpha, where value 0 will use only base texture layer and value 0.5 will use only over texture layer, any value in-between will mix both layers respectively.
=== glass ===
Glass material which uses base texture alpha for specular map and it's also controled controlled by tint parameters:
* Tint - color for glass
* Tint Opacity - mixing factor between transparent and opaque glass
Depending on the type of glass and it's its usage user should properly choose reflection texture.
=== grass ===
Shader used in special cases for static not moving grass.
Normals on the meshes using this shader are ignored as shader always uses normals up as lighting applied to mesh should more-or-less match the ground (assuming ground is flat).
Lamp material used for vehicle lights, auxiliary lights and traffic lights. With the second mask texture this material defines masking areas for situations when particular light is turned on.
More about lamps in [[Documentation/Tools/SCS Blender Tools/Materials/Lamp system|Lamp system]].
==== Useful flavor combinations ====
=== lightmap.night ===
It is night variant of [[#light.tex|light.tex]], meaning surface with this shader will be visible only during the night. During the day this light map will be switched off.
=== mlaaweight ===
=== sign ===
Special case shader used for sign surfaces. Similarly as [[#reflective|reflective]] this shader simulates interaction with player's headlights.
=== sky ===
#* Paintjob Base Color -> base paintjob color.
<blockquote>NOTE: {{Note|There are two more modes "flipflake" and "airbrush.flipflake" which are not yet implemented inside 3D viewport but they can be defined inside definition files anyway, because no additional data have to be exported for them.}}
</blockquote>
<ol>
<li><p>'''"truckpaint.altuv"''' - exports alternative UV layer for paint job. Alternative UV layer has to be specified in paintjob texture.</p>
<blockquote><p>NOTE: {{Note|Not using this extension alternative UV won't be exported and thus can not be used in definition files for paint job.</p>}}</blockquote></li>
<li><p>'''"truckpaint.airbrush"''' - uses paint job as airbrush mask. Paintjob texture is multiplied with base truck paint color by factor of paintjob texture alpha channel.</p>
<blockquote><p>NOTE: {{Note|May or may not be used, shader will give the same result as usage of this extension is specified in definition files and the extension doesn't effect exported data.</p>}}</blockquote></li>
<li><p>'''"truckpaint.airbrush.altuv"''' - combined "truckpaint.altuv" and "truckpaint.airbrush" extensions.</p></li>
<li><p>'''"truckpaint.tsnmap"''' - with extra texture defining normal maps. Both textures are using same UV layer.</p></li>
<li><p>'''"truckpaint.tsnmap.airbrush"''' - with extra texture defining normal maps. Both textures are using same UV layer. Beside normal maps shader also features "truckpaint.airbrush" extension.</p></li>
<li><p>'''"truckpaint.tsnmap.airbrush.altuv"''' - with extra texture defining normal maps. Both textures are using same UV layer. Beside normal maps shader also features "truckpaint.altuv" and "truckpaint.airbrush" extensions.</p></li>
<li><p>'''"truckpaint.tsnmapuv"''' - with extra texture defining normal maps using it's its own UV layer.</p></li><li><p>'''"truckpaint.tsnmapuv.altuv"''' - with extra texture defining normal maps using it's its own UV layer. Beside normal maps shader also features "truckpaint.altuv" extension.</p></li><li><p>'''"truckpaint.tsnmapuv.airbrush"''' - with extra texture defining normal maps using it's its own UV layer. Beside normal maps shader also features "truckpaint.airbrush" extension.</p></li><li><p>'''"truckpaint.tsnmapuv.airbrush.altuv"''' - with extra texture defining normal maps using it's its own UV layer. Beside normal maps shader also features "truckpaint.altuv" and "truckpaint.airbrush" extensions.</p></li></ol>
=== unlit.tex ===
=== unlit.vcol.tex ===
Similar to [[#unlit.tex|unlit.tex]] with additional multiplication by vertex color.
As for transparent flavor combinations this shader uses vertex color alpha multiplied with base texture alpha channel.
=== altuv ===
Special flavor used only on [[#truckpaint|truckpaint]] shader type. It tells shader to use second UV mapping for paintjob texture.
=== airbrush ===
Special flavor used only for [[#truckpaint|truckpaint]] shader type. It tells shader that paintjob texture should be applied as airbrush paintjob.
For more information on airbrush paintjob behaviour see: [[#Paintjob modes|Paintjob modes]] === asafew === Flavor for safe-weighted alpha test, allowing the base texture alpha channel to encode both the opacity [0,32] and the specular map [32,255]. The shader will remap alpha values [32,255] as [0, 255] for the specular map. It is currently supported for dif.spec, dif.spec.weight and dif.lum.spec. {{Note|The "a" flavor must still be specified to enable alpha test behavior.}} Photoshop curve presets for converting specular maps to/from the compressed asafew space:[[File:Asafew_spec_remap_curves.zip]]
=== awhite ===
Special flavor used only for [[#unlit.vcol.tex|unlit.vcol.tex]], moreover should be used only in combination with multiplication blending mode (See [[#add & over & mult]]).
This particular combination will blend out to white color where base texture alpha channel is 0.
=== colormask ===
Special flavor used only for [[#truckpaint|truckpaint]] shader type. It tells shader that paintjob texture should be applied as colormask paintjob.
For more information on color mask paintjob behaviour see: [[#Paintjob modes|Paintjob modes]]
=== decal ===
=== indenv ===
Special flavor used on [[#dif.spec.add.env|dif.spec.add.env]] marking independent environment reflection from material specular color.
This gives user ability to use reflections also on surfaces where specular light is not reaching the surfaces. Example usage for this in [[Games|Euro Truck Simulator 2]] would be any part of reflective interior where sun never shines.
=== linv ===
Flavor inverting liminance luminance mixing used on luminance shaders of [[#dif.lum.spec|dif.lum.spec]].
Luminance shaders without this flavor usually lit illuminate surfaces where base texture alpha channel is 255 and don't lit on surfaces with alpha value 0, however shaders using this . This flavor invertes inverts that behaviour (behavior so that an alpha value of 0 gives full lit illumination and an alpha value of 255 gives no lit)illumination.
=== lvcol ===
Flavor enabling luminance multiplication with vertex color used on luminance shaders: [[#dif.lum|dif.lum]] or [[#dif.lum.spec|dif.lum.spec]].
=== tsnmap & tsnmap16 & tsnmapuv & tsnmapuv16 ===
# '''tsnmap''' - adds extra texture slot for 8-bit normal maps texture and uses same UV mapping as base texture,
# '''tsnmap16''' - adds extra texture slot for 16-bit normal maps texture and uses same UV mapping as base texture,
# '''tsnmapuv''' - adds extra texture slot for 8-bit normal maps texture and uses it's its own UV mapping layer,# '''tsnmapuv16''' - adds extra texture slot for 16-bit normal maps texture and uses it's its own UV mapping layer.
=== nocull ===
Special flavor switching off backface culling of shadow casters on shaders: [[#shadowonly|shadowonly]] or [[#fakeshadow|fakeshadow]].
Basically this means shadow casters will cast shadows on both sides, not only on the one where surface normals are directed.
Usually used on shaders for AI cars, which are painted with different color during the game play.
=== shadow === Flavor enabling shadow casting pass on shader. As there is separate shadow caster shader named [[#shadowonly|shadowonly]], this flavor should be used exceptionally. Usually can be used on animated models where cost of animation calculation on extra shadow caster mesh may be greater then calculating shadow caster directly from "high" poly mesh. === tg0 === Flavor for automatic global texture mapping generation and use it on first texture slot. Enabling this flavor will ignore any set UV mapping and will use automatically generated planar UVs. This mode is usually used for tiled terrain textures, like grass or asphalt.
=== tg1 ===
Flavor for automatic global texture mapping generation and use it on second texture slot. Enabling this flavor will ignore any set UV mapping and will use automatically generated planar UVs.
This mode is usually used for tiled terrain textures, like grass or asphalt.