Difference between revisions of "Material"
m (specified Links for LinkMaterial)
m (Transparency => Translucency)
|Line 70:||Line 70:|
is by setting the alpha component of a material's [[Color(BZW)|color]] to a value less than one. objects should be sparingly, because everything behind them must always be rendered. In addition, very large 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 object to cover the object, which would not look right. Thus, the 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 objects.
The same applies to textures that have sections.
The same applies to textures that have
==Magic Material Names==
==Magic Material Names==
Revision as of 01:21, 5 February 2009
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 spheremap noradar noshadow noculling nosorting nolighting alphathresh 0.0 groupalpha occluder end
Valid parameters for a Material are:
|name||name for reference|
|texture||set the texture (must be .png but don't include the extension unless on the Internet)|
|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|
|spheremap||use spherical texture coordinate mapping|
|noradar||do not display on radar (except normal mode)|
|noshadow||do not render shadows|
|noculling||do not cull by face winding (double-sided)|
|nosorting||do not do front-to-back alpha sorting|
|alphathresh||alpha thresholding value|
|groupalpha||sort translucent faces as a group|
|occluder||faces with this material will occlude|
To actually apply a material, 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
Material translucency is enabled by setting the alpha component of a material's color to a value less than one. Translucent objects should be sparingly, because everything behind them must always be rendered. In addition, very large translucent 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 translucent object to cover the translucent object, which would not look right. Thus, the translucent 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 translucent objects. The same applies to textures that have translucent sections.
Magic Material Names
LinkMaterial For Teleporter Links
TeleMaterial For Teleporter Frame (BZFlag version 3.0)
Materials were added in BZFlag 2.0.0.
A note about textures
A material can be composed of colors and textures. Textures are .png files that are either in the client directory or on the Internet. The terms material and texture are often confused and misunderstood, so bear the above in mind.