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. python password输入

    1.linux下用getpass,没有星号提示,符合linux风格 from getpass import getpasspwd = getpass('Enter the password: ') 2 ...

  2. MVVM框架思想

    1.MVVM是什么? M:模型 V:视图 VM:视图模型 简单理解:mvc是一个cell面向一个model开发 mvvm是一个cell面向一个viewModel开发, viewModel里面又包含mo ...

  3. scrollView中的pagingEnabled的功能

    pagingEnabled是分页设置,以页为单位滑动,即自动到下一页的开始边界

  4. 事件监听addEventListener()和removeEventListener() ---------1

    一直想写一个原生事件监听的记录,方便以后看,不愿意写主要是事件监听的单词太长,记起来好难记每次都要查,这次把知道的写完了,来这里查好了,以后要是理解的更透彻了,就再补全好了 首先,DOM0级事件和DO ...

  5. C#面向对象的方法写数组的功能

    上一篇文章用Java方法写出了可以对数组执行的功能,然后在用实例化后的对象调用这些方法来实现这些功能: 这篇随笔改用C#语言实现同样的功能 方法类:Array using System; using ...

  6. escape()、encodeURI()、encodeURIComponent() difference

    escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编 ...

  7. Fedora20 MATE Destop 环境下安装Sougoupinyin输入法+皮肤

    卸载ibus # yum erase ibus* 选择性安装 fcitx # yum install fcitx fcitx-configtool $ ls -a $ vi .bashrc  .bas ...

  8. hduoj 4715 Difference Between Primes 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4715 Difference Between Primes Time Limit: 2000/1000 MS (J ...

  9. html随笔

    <!DOCTYPE HTML> <html> <head> <meta charset = "utf-8"> <script ...

  10. Limit the query running time with Resource limit facility (RLF)

    If you need to limit the query(package,plan) running time, but the JCL/JOB TIME parameters doesn't w ...