天天看点

材质与材质脚本基本概念Ogre的材质脚本

材质与材质脚本

基本概念

Ogre的材质(Material)

    为了优化渲染,必须把渲染状态的变化减小到最小。而最频繁的渲染状态改变是材料的变化(大多是纹理的变化)。     Ogre的Material类封装了物体的所有材料属性,类似于3D Studio中material的概念。平时不被认为是属于材料的属性,想culling模式和深度缓存设置等,也被material包含进来了。因为这些属性同样影响了物体的外观,把他们放到material类里可以集中设置所有影响物体的属性。这和D3D中只保存颜色组件而没有纹理映射的Material有明显不同。Ogre的Material可以被认为是‘Shader’的等同物。     Material类包括如下几类属性:     ①基本的表面材质属性,如多不同颜色的反射率、Shininess等等;     ②组成Material的纹理层;     ③纹理之间的混合(Blend)方式;     ④深度缓冲设置;     ⑤Culling模式;     ⑥纹理过滤方式(三线性过滤、双线性过滤);     ⑦是否受光照影响;     ⑧Shading选项;     ⑨雾化。     其中第二条的纹理层可以有多个,Ogre在Material类的内部定义了TextureLayer类。

纹理层(TextureLayer)

    一个纹理层可以是一幅静止的图像,也可以是一幅以某种方式运动的图像,还可以是由多幅图像组成的动画。它可以实现多种文理特效,如BUMPMAP、环境贴图、运动的纹理。

材质管理器(MaterialManager)

    MaterialManager类负责管理Material库。和材质现相关的类图如下:     

材质与材质脚本基本概念Ogre的材质脚本

    MaterialManager还负责分析Material脚本(Material Script),从而初始化Material的属性。下面我们来分析一下Ogre提供的材质脚本语言。

Ogre的材质脚本

    Ogre提供的

继续阅读