Difference between revisions of "Material"

From BZFlagWiki
Jump to: navigation, search
(remove prev)
m (Code: properties formatting)
Line 33: Line 33:
 
|}
 
|}
 
Valid parameters for a Material are:
 
Valid parameters for a Material are:
<properties>
+
 
name=name for reference
+
;name: name for reference
texture=set the texture (must be .png but don't include the extension unless on the Internet)
+
;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)
+
;addtexture: add a texture (again, no extension is needed)
notextures=don't use textures.
+
;notextures: don't use textures.
notexcolor=don't apply the [[Color(BZW)|color]] to the texture
+
;notexcolor: don't apply the [[Color(BZW)|color]] to the texture
notexalpha=don't use the texture's alpha channel
+
;notexalpha: don't use the texture's alpha channel
texmat=specify a [[TextureMatrix|texture matrix]]. -1 for no texture matrix. (addtexture must be used before texmat)
+
;texmat: specify a [[TextureMatrix|texture matrix]]. -1 for no texture matrix. (addtexture must be used before texmat)
dyncol=specify a [[DynamicColor|dynamic color]]. -1 for no dynamic color.
+
;dyncol: specify a [[DynamicColor|dynamic color]]. -1 for no dynamic color.
ambient=ambient color
+
;ambient: ambient color
diffuse=diffuse (main)[[Color(BZW)|color]]
+
;diffuse: diffuse (main)[[Color(BZW)|color]]
[[Color(BZW)|color]]=synonym for diffuse
+
;[[Color(BZW)|color]]: synonym for diffuse
specular=specular [[Color(BZW)|color]]
+
;specular: specular [[Color(BZW)|color]]
emission=emission [[Color(BZW)|color]]
+
;emission: emission [[Color(BZW)|color]]
shininess=shiny!
+
;shininess: shiny!
resetmat=restore default values
+
;resetmat: restore default values
spheremap=use spherical texture coordinate mapping
+
;spheremap: use spherical texture coordinate mapping
noradar=do not display on radar (except normal mode)
+
;noradar: do not display on radar (except normal mode)
noshadow=do not render shadows
+
;noshadow: do not render shadows
noculling=do not cull by face winding (double-sided)
+
;noculling: do not cull by face winding (double-sided)
nosorting=do not do front-to-back alpha sorting
+
;nosorting: do not do front-to-back alpha sorting
nolighting=disable lighting
+
;nolighting: disable lighting
alphathresh=alpha thresholding value
+
;alphathresh: alpha thresholding value
groupalpha=sort translucent faces as a group
+
;groupalpha: sort translucent faces as a group
occluder=faces with this material will occlude
+
;occluder: faces with this material will occlude
</properties>
+
 
 
To actually apply a material, you must use some sort of reference in an object, like so:
 
To actually apply a material, you must use some sort of reference in an object, like so:
 
{|
 
{|

Revision as of 03:12, 28 July 2012

A material is used in a BZFlag world to define a new look for otherwise regular objects, such as meshboxes.

Code

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.
ambient
ambient color
diffuse
diffuse (main)color
color
synonym for diffuse
specular
specular color
emission
emission color
shininess
shiny!
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
nolighting
disable lighting
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
 
 # refer to the previously defined material with its particular name we gave it before
 # compare underlined text in the code at the page top
 matref example_material
end

Please note the matref is the name of the defined material, not the name of the .png/url file!

Translucency

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

General

GroundMaterial
WaterMaterial
LinkMaterial For Teleporter Links
TeleMaterial For Teleporter Frame (BZFlag version 3.0)

Skybox

LeftSkyboxMaterial
RightSkyboxMaterial
FrontSkyboxMaterial
BackSkyboxMaterial
TopSkyboxMaterial
BottomSkyboxMaterial

History

Materials were added in BZFlag 2.0.0.

Editor Support

Materials are supported in Blender with BZWTools, pyBZEdit, and Wings3D with the BZW Exporter for Wings3D. Materials are NOT supported in BZEdit, BZFed or IBZEdit.

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.