ogre3D学习基础19 --- 材质的继承,纹理的滚动与旋转

以上一节为基础,废话不多说。

  首先新增一个节点,用于比较显示

//新增一个节点
    ent = mSceneMgr->createEntity("Quad");
    ent->setMaterialName("MyMaterial9");
    node = mSceneMgr->getRootSceneNode()->createChildSceneNode("Node2",Ogre::Vector3(15,0,0));
    node->attachObject(ent);

 

  我们改变下纹理坐标显示的比例为 0.2

    manual->position(5.0,0.0,0.0);
    manual->textureCoord(0,0.2);
    manual->position(-5.0,10.0,0.0);
    manual->textureCoord(0.2,0);
    manual->position(-5.0,0.0,0.0);
    manual->textureCoord(0.2,0.2);
    manual->position(5.0,10.0,0.0);
    manual->textureCoord(0,0);

  首先实现简单滚动:

  在纹理下面添加如下代码即可实现:

material MyMaterial9
{
    technique
    {
        pass
        {
            texture_unit
            {
                texture terr_rock6.jpg
                scroll 0.2 0.2
            }
        }
    }
}

  效果如下:

  这个纹理的显示是以下面的比例实现的:

  然后看动态滚动的实现,很简单,脚本如下:

  一个scroll_anim 0.1 0.1

  另一个scroll_anim 0.8 0.8
 
效果很明显:

 

 接下来看看纹理的旋转与继承:

  将显示比例改为正常显示:

    manual->position(5.0,0.0,0.0);
    manual->textureCoord(0,1);
    manual->position(-5.0,10.0,0.0);
    manual->textureCoord(1,0);
    manual->position(-5.0,0.0,0.0);
    manual->textureCoord(1,1);
    manual->position(5.0,10.0,0.0);
    manual->textureCoord(0,0);

  现在写我们要继承的父脚本

material MyMaterial11
{
    technique
    {
        pass
        {
            texture_unit texture1//起个名字,便于修改
            {
                texture grass_1024.jpg
                rotate_anim 0.1//这句话实现旋转,参数表示速度
            }
        }
    }
}

 派生的脚本如下:

material MyMaterial12 : MyMaterial11
{
    set_texture_alias texture1 grass_1024.jpg//这里可更换图片
}

截个动画看看效果:

 继续学习,每天进步一点点。。

posted @ 2013-10-17 15:21  struggle_time  阅读(1179)  评论(0编辑  收藏  举报