WebGL 3D Material
iv.material
3d material.
Constructor
iv.material(data)
Constructor creates new camera object and initialized it using optional data parameter.
Methods
.invalidate()
Method invalidates material and removes all shaders from material.
.clear()
Method removes all material channels and shaders.
.load(data)
Method initialised material from material description object.
data | Object with material definition. |
Shaders will be created on first material usage. Shader will depend on scene lights and mesh properties. All parameters in object are optional.
Supported fields are:
path | Path to material resources - textures. String. |
name | Name of material. String. |
phong | Phong exponent. Number. |
backSide | Material for back side. Boolean. |
diffuse | Diffuse channel |
specular | Specular channel |
emissive | Emissive channel |
reflection | Reflection channel |
opacity | Opacity channel |
bump | Bump channel |
ambient | Same as emissive channel |
lightmap | Light map channel |
Format of each channel is array of items or item or number.
Number
- For opacity channel will be amount of opacity.
- For rest channels number will be set to color.
Array
Each element in array is item for shader.
Item
Where each item is:
- Array of 3 numbers - channel color.
- Definition of channel item.
Object for material channel definition
color | Channel color. Number or array of 3 items. For instance red color may be: 0xff0000 or [1,0,0] |
amount | Amount. number from 0 to 1 |
blend | Blend mode. String: "mul", "add", "sub". |
texture | Texture definition. Object |
Texture defintion:
type | string, optional. "cube" - for reflection texture |
tm | 3x2 UV matrix. |
cmp | Components. 'a' or 'rgb'. |
filter | Filter. |
uvset | UV set. 0 or 1. |
wrapT | Wrap in T direction. |
wrapS | Wrap in S direction. |
Sample material:
{"diffuse":{"texture":"ash_uvgrid03.jpg","format":"rgb"}, "specular":{"color":[0.7,0.7,0.7]}, "lightmap":{"texture":"test triangles.jpg","uvset":1,"format":"rgb"}, "phong":16 }