MaterialPtr material= MaterialManager::getSingleton().create("name",“ResourcesGroupName”);
material->getTechnique(0)->getPass(0)->createTextureUnitState(”TextureFilename“);

用Ogre来绘制一个立方体

ManualObject* cube;

cube = mSceneMgr->createManualObject("cube");

cube->begin("cubeMaterial");

// 顶点

cube->position( -100, -100, -100);   //0

cube->colour(0.0, 0.0, 0.0);

cube->position( 100, -100, -100);    //1

cube->colour(1.0, 0.0, 0.0);

cube->position( 100, -100, 100);    //2

cube->colour(1.0, 0.0, 1.0);

cube->position( -100, -100, 100);    //3

cube->colour(0.0, 0.0, 1.0);

cube->position( -100, 100, -100);    //4

cube->colour(0.0, 1.0, 0.0);

cube->position( 100, 100, -100);    //5

cube->colour(1.0, 1.0, 0.0);

cube->position( 100, 100, 100);    //6

cube->colour(1.0, 1.0, 1.0);

cube->position( -100, 100, 100);    //7

cube->colour(0.0, 1.0, 1.0);

//// 索引

cube->triangle(0, 2, 1);

cube->triangle(0, 2, 3);

cube->triangle(3, 4, 0);

cube->triangle(3, 7, 4);

cube->triangle(4, 7, 6);

cube->triangle(4, 6, 5);

cube->triangle(5, 2, 1);

cube->triangle(5, 6, 2);

cube->triangle(0, 4, 1);

cube->triangle(5, 1, 4);

cube->triangle(3, 6, 7);

cube->triangle(3, 2, 6);

cube->end();

SceneNode* sn = mSceneMgr->getRootSceneNode()->createChildSceneNode();

sn->attachObject(cube);

在上个立方体的基础上加上6个贴图

// 创建六个纹理

MaterialPtr material = MaterialManager::getSingletonPtr()->create("q", "General");

material->getTechnique(0)->getPass(0)->createTextureUnitState("q.jpg");

material = MaterialManager::getSingletonPtr()->create("a", "General");

material->getTechnique(0)->getPass(0)->createTextureUnitState("a.jpg");

material = MaterialManager::getSingletonPtr()->create("z", "General");

material->getTechnique(0)->getPass(0)->createTextureUnitState("z.jpg");

material = MaterialManager::getSingletonPtr()->create("x", "General");

material->getTechnique(0)->getPass(0)->createTextureUnitState("x.jpg");

material = MaterialManager::getSingletonPtr()->create("s", "General");

material->getTechnique(0)->getPass(0)->createTextureUnitState("s.jpg");

material = MaterialManager::getSingletonPtr()->create("w", "General");

material->getTechnique(0)->getPass(0)->createTextureUnitState("w.jpg");

ManualObject* cube;

cube = mSceneMgr->createManualObject("cube");

/// 下面, begin的第一个参数为要设置的材质名称

cube->begin("q", RenderOperation::OT_TRIANGLE_FAN);

cube->position( -100, -100, -100);   //0

cube->textureCoord(1, 0);

cube->position( 100, -100, -100);    //1

cube->textureCoord(0, 0);

cube->position( 100, -100, 100);    //2

cube->textureCoord(0, 1);

cube->position( -100, -100, 100);    //3

cube->textureCoord(1, 1);

cube->end();

/// 左面

cube->begin("a", RenderOperation::OT_TRIANGLE_FAN);

cube->position( -100, -100, 100);    //3

cube->textureCoord(1, 0);

cube->position( -100, 100, 100);    //7

cube->textureCoord(0, 0);

cube->position( -100, 100, -100);    //4

cube->textureCoord(0, 1);

cube->position( -100, -100, -100);   //0

cube->textureCoord(1, 1);

cube->end();

/// 上面

cube->begin("z", RenderOperation::OT_TRIANGLE_FAN);

cube->position( -100, 100, -100);    //4

cube->textureCoord(1, 0);

cube->position( -100, 100, 100);    //7

cube->textureCoord(0, 0);

cube->position( 100, 100, 100);    //6

cube->textureCoord(0, 1);

cube->position( 100, 100, -100);    //5

cube->textureCoord(1, 1);

cube->end();

/// 右面

cube->begin("x", RenderOperation::OT_TRIANGLE_FAN);

cube->position( 100, -100, -100);    //1

cube->textureCoord(1, 0);

cube->position( 100, 100, -100);    //5

cube->textureCoord(0, 0);

cube->position( 100, 100, 100);    //6

cube->textureCoord(0, 1);

cube->position( 100, -100, 100);    //2

cube->textureCoord(1, 1);

cube->end();

/// 前面

cube->begin("s", RenderOperation::OT_TRIANGLE_FAN);

cube->position( 100, -100, -100);    //1

cube->textureCoord(1, 0);

cube->position( -100, -100, -100);   //0

cube->textureCoord(0, 0);

cube->position( -100, 100, -100);    //4

cube->textureCoord(0, 1);

cube->position( 100, 100, -100);    //5

cube->textureCoord(1, 1);

cube->end();

/// 后面

cube->begin("w", RenderOperation::OT_TRIANGLE_FAN);

cube->position( 100, -100, 100);    //2

cube->textureCoord(1, 0);

cube->position( 100, 100, 100);    //6

cube->textureCoord(0, 0);

cube->position( -100, 100, 100);    //7

cube->textureCoord(0, 1);

cube->position( -100, -100, 100);    //3

cube->textureCoord(1, 1);

cube->end();

[Ogre]纹理设置的更多相关文章

  1. Unity 用户手册用户指南二维纹理 (Texture 2D)

    http://www.58player.com/blog-2327-953.html 二维纹理 (Texture 2D) 纹理 (Textures) 使您的 网格 (Meshes).粒子 (Parti ...

  2. Unity3d之Shader编程:子着色器、通道与标签的写法 & 纹理混合

    一.子着色器 Unity中的每一个着色器都包含一个subshader的列表,当Unity需要显示一个网格时,它能发现使用的着色器,并提取第一个能运行在当前用户的显示卡上的子着色器. 我们知道,子着色器 ...

  3. Stage3D学习笔记(五):通过矩阵操作纹理

    虽然我们上一节已经实现了正交矩阵的显示,但是可以明显的感觉到要调整显示纹理的坐标和尺寸是相当复杂的,需要对每个顶点进行操作,如果还要加上注册点和旋转的话,用上一节的方法来做是会让人发疯的! 所以我们距 ...

  4. cocos2d-x 添加纹理自动回收机制

    转自:http://www.cnblogs.com/lancidie/archive/2013/04/13/3019375.html 1.不是一个完整的模块,所以不提供完整代码,只提供思路和核心代码. ...

  5. 制作UI纹理(UI Texture)

    什么情况下使用UI Texture UI Texture的功能是在屏幕上显示一张图片,在这一点上它和Sprite有着相似的功能,但是UI Texture会消耗单独的DrawCall去渲染,并会单独加载 ...

  6. DirectX11--深入理解与使用2D纹理资源

    前言 写教程到现在,我发现有关纹理资源的一些解说和应用都写的太过分散,导致连我自己找起来都不方便.现在决定把这部分的内容整合起来,尽可能做到一篇搞定所有2D纹理相关的内容,其中包括: DDSTextu ...

  7. 关于Cocos2d-x节点和精灵节点的坐标、位置以及大小的设置

    1.cocos2d-X中的坐标(0,0),就是运行框的左下角位置,所以运行框看起来就是一个第一象限. 2.节点的锚点就是我们setPosition所设定的位置,默认锚点是在节点的中心,也就是setPo ...

  8. DXVA2解码数据用texture纹理渲染

    FFmpeg DXVA2解码得到的数据使用surface来承载的,surface限制很多,如果能用纹理来渲染的话,那我们就可以充分开发D3D,比如可以用坐标变换来实现电子放大的功能,还可以用坐标变换来 ...

  9. 二维纹理 Texture 2D

    Textures bring your Meshes, Particles, and interfaces to life! They are image or movie files that yo ...

随机推荐

  1. 苹果API常用英语名词

    0. indicating决定 1.in order to 以便 2.rectangle bounds 矩形尺寸 3.applied 应用 4.entirety全部 5.technique 方法 6. ...

  2. 详细讲解Quartz.NET

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...

  3. Three.js基础探寻十——动画

    本篇将介绍如果使用Three.js进行动态画面的渲染.此外,将会介绍一个Three.js作者写的另外一个库stat.js,用来观测每秒帧数(FPS). 1.实现动画效果 1.1 动画原理 对于Thre ...

  4. [转]Eclipse Java注释模板设置详解

    原文链接:http://blog.csdn.net/ahhsxy/archive/2009/09/11/4542682.aspx 设置注释模板的入口: Window->Preference-&g ...

  5. 。。。Hibernate 查询数据 事务管理。。。

    在Hibernate中,查询数据的时候,可能会需要事务的管理,为什么呢?因为在查询数据库的时候,Hibernate将数据从数据库里面查询出来之后,会先把数据放入Hibernate的session缓存里 ...

  6. PHP V5.2 中的新增功能,第 1 部分: 使用新的内存管理器

    PHP V5.2:开始 2006 年 11 月发布了 PHP V5.2,它包括许多新增功能和错误修正.它废止了 5.1 版并被推荐给所有 PHP V5 用户进行升级.我最喜欢的实验室环境 —— Win ...

  7. AS-demo09

    ,mainifast: <uses-permission android:name="android.permission.SET_WALLPAPER"/> , < ...

  8. php 无限循环

    什么是无限分类呢?就像windows下新建一个文件夹,在新建的文件夹下又可以新建 一个文件夹,这样无限循环下去,无限分类也是这样,父类可以分 出它子类,子类又 可以分出它的子类,这样一直无限循环下去. ...

  9. Sql Server服务远程过程调用失败解决

    Sql Server服务远程过程调用失败解决   问题:       今天SQL数据库登录不上了,然后想启动Sql实例,却发现如下问题(配置环境:win7旗舰版x64,SqlServer2008R2, ...

  10. RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)

    在上一篇RobotFrameWork接口报文测试-----(二)demo的升级版基础上,将接口的xml的格式保存在xml文件中,然后程序如果增加一个接口,在xml文件里添加即可,无需修改自动化测试里的 ...