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

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

  1. //新增一个节点
  2. ent = mSceneMgr->createEntity("Quad");
  3. ent->setMaterialName("MyMaterial9");
  4. node = mSceneMgr->getRootSceneNode()->createChildSceneNode("Node2",Ogre::Vector3(,,));
  5. node->attachObject(ent);

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

  1. manual->position(5.0,0.0,0.0);
  2. manual->textureCoord(,0.2);
  3. manual->position(-5.0,10.0,0.0);
  4. manual->textureCoord(0.2,);
  5. manual->position(-5.0,0.0,0.0);
  6. manual->textureCoord(0.2,0.2);
  7. manual->position(5.0,10.0,0.0);
  8. manual->textureCoord(,);

  首先实现简单滚动:

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

  1. material MyMaterial9
  2. {
  3. technique
  4. {
  5. pass
  6. {
  7. texture_unit
  8. {
  9. texture terr_rock6.jpg
  10. scroll 0.2 0.2
  11. }
  12. }
  13. }
  14. }

  效果如下:

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

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

  一个scroll_anim 0.1 0.1

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

 

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

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

  1. manual->position(5.0,0.0,0.0);
  2. manual->textureCoord(,);
  3. manual->position(-5.0,10.0,0.0);
  4. manual->textureCoord(,);
  5. manual->position(-5.0,0.0,0.0);
  6. manual->textureCoord(,);
  7. manual->position(5.0,10.0,0.0);
  8. manual->textureCoord(,);

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

  1. material MyMaterial11
  2. {
  3. technique
  4. {
  5. pass
  6. {
  7. texture_unit texture1//起个名字,便于修改
  8. {
  9. texture grass_1024.jpg
  10. rotate_anim 0.1//这句话实现旋转,参数表示速度
  11. }
  12. }
  13. }
  14. }

 派生的脚本如下:

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

截个动画看看效果:

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

ogre3D学习基础19 --- 材质的继承,纹理的滚动与旋转的更多相关文章

  1. ogre3D学习基础18 -- 材质的使用与脚本的简单书写

    这一节以基础16为基础,练习材质的使用. 第一,看看框架 //material #include "ExampleApplication.h" class TutorialAppl ...

  2. ogre3D学习基础5 -- 阴影与动画

    五.阴影 阴影是渲染一个真实场景的重要组成部分,它可以给场景中的物体提供更加真实的感觉,同时还可以帮助用户更好的了解对象间的空间关系. 启用阴影: 缺省情况下,阴影是关闭的,开启方式如下: 1.建立场 ...

  3. ogre3D学习基础1 -- 核心对象与脚本技术

    一.核心对象介绍1.命名空间 Ogre3d使用了C++的特性--命名空间,可以防止命名混淆.使用方法也简单,using namespace Ogre;或者直接在使用时加上“Ogre::”的前缀,如Og ...

  4. ogre3D学习基础2 -- 顶点程序与片断程序

    三.顶点程序与片断程序 顶点或者片断程序定义可以被多个材质使用,唯一的前提条件是必须在引用它之前在材质的渲染通路部分中定义. 一个低级顶点程序示例如下: vertex_program myVertex ...

  5. ogre3D学习基础9 -- 光源程序实例

    这一章练习一下光源的使用,光源分为三种:点光源,聚光源,有向光.具体内容前面说过,这里就不解释了. 继续在上一章的程序的基础上实现. 1.创建摄像机(Camera) createCamera()函数是 ...

  6. ogre3D学习基础8 --- 资源管理器

    资源管理 可管理的资源有: 材质资源:在.material文件中包含的材质脚本定义(技术.通路.纹理单元等数据的定义). 模型资源:经过优化的二进制网格模型文件,扩展名为.mesh.包含几何信息和一些 ...

  7. ogre3D学习基础7---材质详解

    物体着色的基础 --- 四种不同光照作用 1.环境反射 近似的模拟了场景中的全局辐射,也就是用来近似模拟所有光在场景中不断散射的结果.材质中有相应的属性来代表这种环境反射颜色. 2.漫反射 这种颜色是 ...

  8. ogre3D学习基础16 -- 手动创建实体(ManualObject)

    这一节练习一下手动创建实体,用到了对象(ManualObject) 第一,依然是模板 #include "ExampleApplication.h" class Example1 ...

  9. ogre3D学习基础3 -- 粒子与表层脚本

    9.粒子脚本 粒子脚本允许你实例化地在你的脚本代码中定义粒子系统,而不必在源代码中进行设置,使得你做任何修改都能得到快速回应.脚本里定义的粒子系统被用作模板,并且多个实际的系统可以在运行时从这里被创建 ...

随机推荐

  1. git学习(一)

    提:       远程的主机名(远程仓库服务器名):  origin   本地的主分支: master(本地master分支)      远程的主分支: maste(远程仓库的master分支) gi ...

  2. 绿卡基础知识:I-129

    绿卡基础知识:I-129 标签: 绿卡基础知识 I-129 表格本不该你来填的.那是你老板的 business.在美国工作,除非是公民或有绿卡,都需要移民局的批准.如果你没有 EAD,I-129 就是 ...

  3. npm常用指令小记

    查看本地指定包在npm远程服务器的版本信息 方式一: npm view <packageName> versions 方式二: npm info <packageName> 查 ...

  4. JavaScript_对象

    1.  直接创建实例: //简单对象 var person1 = new Object(); person1.name = "Mike"; person1.age = 29; pe ...

  5. vue-绑定style、css

    class.style的绑定1.在 v-bind 用于 class 和 style 时, Vue.js 专门增强了它.表达式的结果类型除了字符串之外,还可以是对象或数组2.绑定css2.1对象绑定2. ...

  6. 工作中碰到的css问题解决方法

    好久都没来这写东西了,都长草了.刚解决的两个小问题,先记下来 textarea横向没有滚动条加上 wrap="off"这个属性 英文单词不断行加上这个 word-break:bre ...

  7. js 中//<![CDATA[ 意义

    CDATA内部所有东西都会被解析器忽略,加入文本中包含了大量< 和 $符号,就像编程中经常出现的情况一样,那么这个元素就可以被定义为一个CDATA部分 ,CDATA 区段开始于 "&l ...

  8. JSP开发过程遇到的中文乱码问题及解决方案

    对于程序猿来说,乱码问题真的很头疼,下面列举几种常见的乱码. 1.数据库编码不一致导致乱码 解决方法: 首先查看数据库编码,输入: show variables like "%char%&q ...

  9. UIButton 加载网络图片

    以后就可以 用这个分类   UIButton轻松加载网络图片了, UIButton+WebCache.h #import <UIKit/UIKit.h> @interface UIButt ...

  10. 【转】IOS基础:深入理解Objective-c中@class的含义

    objective-c中,当一个类使用到另一个类时,并且在类的头文件中需要创建被引用的指针时, 如下面代码: A.h文件 #import "B.h" @interface A :  ...