wiki:MaterialFormat
Last modified 20 months ago Last modified on 2012-08-14 01:54:39

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>