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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?