ogre3D学习基础19 --- 材质的继承,纹理的滚动与旋转
以上一节为基础,废话不多说。
首先新增一个节点,用于比较显示
//新增一个节点
ent = mSceneMgr->createEntity("Quad");
ent->setMaterialName("MyMaterial9");
node = mSceneMgr->getRootSceneNode()->createChildSceneNode("Node2",Ogre::Vector3(,,));
node->attachObject(ent);
我们改变下纹理坐标显示的比例为 0.2
manual->position(5.0,0.0,0.0);
manual->textureCoord(,0.2);
manual->position(-5.0,10.0,0.0);
manual->textureCoord(0.2,);
manual->position(-5.0,0.0,0.0);
manual->textureCoord(0.2,0.2);
manual->position(5.0,10.0,0.0);
manual->textureCoord(,);
首先实现简单滚动:
在纹理下面添加如下代码即可实现:
material MyMaterial9
{
technique
{
pass
{
texture_unit
{
texture terr_rock6.jpg
scroll 0.2 0.2
}
}
}
}
效果如下:

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

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

接下来看看纹理的旋转与继承:
将显示比例改为正常显示:
manual->position(5.0,0.0,0.0);
manual->textureCoord(,);
manual->position(-5.0,10.0,0.0);
manual->textureCoord(,);
manual->position(-5.0,0.0,0.0);
manual->textureCoord(,);
manual->position(5.0,10.0,0.0);
manual->textureCoord(,);
现在写我们要继承的父脚本
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//这里可更换图片
}
截个动画看看效果:

继续学习,每天进步一点点。。
ogre3D学习基础19 --- 材质的继承,纹理的滚动与旋转的更多相关文章
- ogre3D学习基础18 -- 材质的使用与脚本的简单书写
这一节以基础16为基础,练习材质的使用. 第一,看看框架 //material #include "ExampleApplication.h" class TutorialAppl ...
- ogre3D学习基础5 -- 阴影与动画
五.阴影 阴影是渲染一个真实场景的重要组成部分,它可以给场景中的物体提供更加真实的感觉,同时还可以帮助用户更好的了解对象间的空间关系. 启用阴影: 缺省情况下,阴影是关闭的,开启方式如下: 1.建立场 ...
- ogre3D学习基础1 -- 核心对象与脚本技术
一.核心对象介绍1.命名空间 Ogre3d使用了C++的特性--命名空间,可以防止命名混淆.使用方法也简单,using namespace Ogre;或者直接在使用时加上“Ogre::”的前缀,如Og ...
- ogre3D学习基础2 -- 顶点程序与片断程序
三.顶点程序与片断程序 顶点或者片断程序定义可以被多个材质使用,唯一的前提条件是必须在引用它之前在材质的渲染通路部分中定义. 一个低级顶点程序示例如下: vertex_program myVertex ...
- ogre3D学习基础9 -- 光源程序实例
这一章练习一下光源的使用,光源分为三种:点光源,聚光源,有向光.具体内容前面说过,这里就不解释了. 继续在上一章的程序的基础上实现. 1.创建摄像机(Camera) createCamera()函数是 ...
- ogre3D学习基础8 --- 资源管理器
资源管理 可管理的资源有: 材质资源:在.material文件中包含的材质脚本定义(技术.通路.纹理单元等数据的定义). 模型资源:经过优化的二进制网格模型文件,扩展名为.mesh.包含几何信息和一些 ...
- ogre3D学习基础7---材质详解
物体着色的基础 --- 四种不同光照作用 1.环境反射 近似的模拟了场景中的全局辐射,也就是用来近似模拟所有光在场景中不断散射的结果.材质中有相应的属性来代表这种环境反射颜色. 2.漫反射 这种颜色是 ...
- ogre3D学习基础16 -- 手动创建实体(ManualObject)
这一节练习一下手动创建实体,用到了对象(ManualObject) 第一,依然是模板 #include "ExampleApplication.h" class Example1 ...
- ogre3D学习基础3 -- 粒子与表层脚本
9.粒子脚本 粒子脚本允许你实例化地在你的脚本代码中定义粒子系统,而不必在源代码中进行设置,使得你做任何修改都能得到快速回应.脚本里定义的粒子系统被用作模板,并且多个实际的系统可以在运行时从这里被创建 ...
随机推荐
- 海海DRM视频保护解密流程分析
环境及工具 手机 :小米手机 MI 2A 系统版本: Android 4.1.1 工具 : IDA pro 6.6 .C32Asm .VS2005 一:第一次打开加密视频会出现如下验证: ...
- 卸载gitlab
一.停止gitlab sudo gitlab-ctl stop 二.卸载gitlab sudo rpm -e gitlab-ce三.查看gitlab进程 杀掉第一个守护进程 kill -9 4473 ...
- pta 编程题20 旅游规划
其它pta数据结构编程题请参见:pta 题目 这个最短路径问题只需要求两点之间的最短路径,因而在Dijikstra算法中当求出目标点的最短路径之后跳出循环即可. #include <iostre ...
- c++树的表示方法
c++树的节点的表示方法: typedef struct Node *Tree; struct Node { int data; Node *left; Node *right; int flag; ...
- JS.match方法 正则表达式
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配. 该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置. <sc ...
- HTML5新特性 video '►'
var play = document.createElement('button') play.setAttribute('title','play') play.innerHTML = '►' 创 ...
- 日常入新坑,py一下
首先是IDE,因为我经常在Ubuntu 18和win 10两个系统换来换去,所以IDE必须要能跨平台,所以这里就选了PyCharm.Py划重点—— 从Jet Brains的网站下载安装包,直接跟着默认 ...
- 使用Intellij IDEA 14.0.2 编译项目耗时特别长的问题
前段时间在使用IDEA编译项目时后台编译会一直Hang在那.如图: 刚开始以为是升级将IDEA从13升级至14的问题,退回到13 问题依就.Google了下,按照相应方法还是无果,没办法 还重装了下系 ...
- IOS 设置子控件的frame(layoutSubviews and awakeFromNib)
如果控件是通过xib或者storyboard创建出来的就会调用该方法 - (void)awakeFromNib :该方法只会调用一次 // 如果控件是通过xib或者storyboard创建出来的就 ...
- codeforce Gym 100425E The Street Escalator(期望,线性递推)
算数学期望,每个人都可以分开来考虑.Xi表示第i个人跑到另外一边的次数. Xi服从二项分布.概率的和是个二项式,(p+1-p)^T,把二项式展开,p的偶次项是留在原来那一边的概率. 可以用((a+b) ...