• 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//这里可更换图片
    }

    截个动画看看效果:

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

  • 相关阅读:
    linux常用命令(18)find exec
    linux常用命令(17)find命令概览
    linux常用命令(16)locate命令
    linux常用命令(15)whereis命令
    linux常用命令(14)which命令
    linux常用命令(13)tail命令
    linux常用命令(12)head命令
    linux常用命令(11)less命令
    linux常用命令(10)more命令
    linux常用命令(9)nl命令
  • 原文地址:https://www.cnblogs.com/songliquan/p/3374273.html
Copyright © 2020-2023  润新知