TGEA中材质的使用(二)
2. Material对象
使用Material很简单,只需要简单的设置Material的属性即可。
打开\example\demo\data\shapes\test下的materials.cs文件,里面有大量的的材质的定义。还是以box为例,来看一下相就的Material的属性。
new Material(One)
{
mapTo = one;
baseTex[0] = "one";
emissive[0] = true;
glow[0] = true;
};
Mapto我们已经介绍了。
baseTex是指定渲染这个材质要使用的纹理。
Emissive是自发光。
Glow是泛光。
要注意的是这些属性后面都有带下标。这是Stage的标号。Stage类似于DX中的pass,对于一个对象,可以指定多道pass进行渲染,最终再将这些pass混合起来,即多道渲染。
以下是one这个面的效果,如图5
图5 demo中的效果
再看一个Material的实例。
new Material(BoxEdge)
{
mapTo = box_edge;
baseTex[0] = "box_edge";
bumpTex[0] = "knot3bump";
pixelSpecular[0] = true;
specular[0] = "1.0 1.0 1.0 1.0";
specularPower[0] = 32.0;
};
其中的bumptex属性指定了凹凸贴图,这样渲染出来的物体表面会有凹凸不平坦的效果。具体见图6
图6 盒子边缘的凹凸效果
TGEA是一款强大的引擎,它可以生成功能丰富的shader。通过恰当调整Material的属性,已经可以做出很美观的游戏特效。具体的Material的属性可以参见Torque Developer Network上的文档。