2
MaterialFormat
k776 edited this page 2012-08-14 03:54:39 +02:00
TODO: Describe the config options better
<?xml version="1.0" encoding="utf-8"?>
<material>
<shader effect="model_transparent"/>
<alpha_blending/>
<define name="USE_TRANSPARENT" value="1"/>
<alternative material="basic_trans_ao_spec.xml" quality="8"/>
<alternative material="alphatest_ao_parallax_spec.xml" if="CFG_FORCE_ALPHATEST"/>
<!-- REQUIRES: Actor must provide a texture named "normTex", where the Alpha channel
is the heightmap (white = high).
COMMENT: Pixels that are exactly white are calculated more efficiently (on average)
if dynamic branching is supported by the player's GPU.
EFFICIENCY: This is a moderately expensive effect, so use with care. -->
<conditional_define name="USE_PARALLAX_MAP" value="1" type="draw_range" conf="PARALLAX_DIST"/>
<conditional_define name="USE_HQ_PARALLAX" value="1" type="draw_range" conf="PARALLAX_HQ_DIST"/>
<!-- REQUIRES: Actor must provide a texture named "normTex", where the RGB channels
are a normal map corresponding to XYZ normals.
EFFICIENCY: This is a relatively inexpensive effect that should run easily on most hardware. -->
<define name="USE_NORMAL_MAP" value="1"/>
<!-- REQUIRES: Actor must provide a texture named "specTex", where the RGB channels
provide a specular colour multiplier.
Material must provide a uniform definition for "specularPower" that controls
the glossiness of the effect.
COMMENT: The intensity of the colour controls the specular amount, so black pixels have
no specularity.
COMPATIBILITY: This effect is incompatible with the old "USE_SPECULAR" effect.
EFFICIENCY: This is a relatively inexpensive effect that should run easily on most hardware. -->
<define name="USE_SPECULAR_MAP" value="1"/>
<!-- REQUIRES: That "USE_SPECULAR_MAP" is enabled and a texture named "specTex" is provided by the Actor.
The Alpha channel of the texture defines the amount of self-illumination, with
transparency being no self-illumination.
COMMENT: Full self-illumination means the screen colour of a pixel is equal to its baseTex value.
EFFICIENCY: This is a very cheap effect, however it also requires the calculation of specular. -->
<define name="USE_SELF_LIGHT" value="1"/>
<!-- REQUIRES: Actor must provide a texture named "aoTex", where the R channel is the Ambient Occlusion.
The model must provide a second, non-overlapping set of UV coordinates.
COMMENT: The texture is combined using a multiply blend of (2 * ao * baseTex). -->
<define name="USE_AO" value="1"/>
<!-- Settings for effects above:
First value: Normal mapping intensity.
Second value: Specular power.
Third value: Parallax scale.
Fourth value: AO amount. -->
<uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/>
</material>