A material is used in a BZFlag world to define a new look for otherwise regular objects, such as meshboxes.
To put a material in your map, first it must be defined:
material name example_material texture filename addtexture filename notextures notexcolor notexalpha texmat -1 dyncol -1 ambient 0.0 0.0 0.0 1.0 diffuse 1.0 1.0 1.0 1.0 color 1.0 1.0 1.0 1.0 specular 0.0 0.0 0.0 1.0 emission 0.0 0.0 0.0 1.0 shininess 0.0 resetmat end
Valid parameters for a Material are:
|name||name for reference|
|texture||set the texture (must be .png but don't include the extension)|
|addtexture||add a texture (again, no extension is needed)|
|notextures||don't use textures.|
|notexcolor||don't apply the color to the texture|
|notexalpha||don't use the texture's alpha channel|
|texmat||specify a texture matrix. -1 for no texture matrix. (addtexture must be used before texmat)|
|dyncol||specify a dynamic color. -1 for no dynamic color.|
|color||synonym for diffuse|
|resetmat||restore default values|
To actually apply a texture, you must use some sort of reference in an object, like so:
meshbox position 0 0 10 rotation 0 size 10 10 5 matref example_material end
The transparency effect is created by setting the alpha component of a material's color to a value less than one. Transparent objects should be sparingly, because everything behind them must always be rendered. In addition, very large transparent objects may be sorted and drawn in the wrong order. This is caused by the fact that the Z-buffer cannot be used because it would allow another transparent object to cover the transparent object, which would not look right. Thus, the transparent elements are instead sorted by determining the distance to a point in the center, which works well as long as there are not too many large transparent objects. The same applies to textures that have transparent sections.
Magic Material Names
LinkMaterial (for teleporters)
Materials were added in BZFlag 2.0.0.