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//这里可更换图片
}
截个动画看看效果:
继续学习,每天进步一点点。。
本文来自博客园,作者:struggle_time,转载请注明原文链接:https://www.cnblogs.com/songliquan/p/3374273.html