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. [转] [环境搭建] VS-Visual Studio-IIS Express 支持局域网访问

    ------------------------------------------- 更正, 我发现Program一项只设置为iisexpress.exe是不可行的. 只能设置为Any才行(当然这是 ...

  2. [转]qt中文乱码问题

    http://blog.csdn.net/brave_heart_lxl/article/details/7186631#

  3. XP下安装MAC OS虚拟系统

    参考baidu经验: http://jingyan.baidu.com/article/e5c39bf5876c8b39d760331a.html 工具: 1.虚拟机软件:vmware worksta ...

  4. spring 怎样将枚举项注入到bean的数组字段中

    在配置文件的xmlns中引入util的scheam xmlns:util=http://www.springframework.org/schema/util 在配置文件的xmlns:util=&qu ...

  5. Java基础之创建窗口——使用卡片布局管理器(TryCardLayout)

    控制台程序. 卡片布局管理器会生成一叠组件——一个组件放在另一个组件的上面.添加到容器中的第一个组件在堆栈的顶部,因此是可见的,添加的最后一个组件在堆栈的底部.使用默认的构造函数CardLayout( ...

  6. MySQL单表最大限制

    想把一个项目的数据库导出来,然后倒入到自己熟悉的MySQL数据库中进行运行和调试.导出来后,发现sql文件整整有12G多大,忽然想起来,MySQL好像有个叫做容量限制的神奇特性,但是忘了上限是多少了, ...

  7. Codeforce Round #228 Div2

    这次的A题没注意要到100- -, B题没做,后来做要注意下1和long long C题当时坑的一B,用了个蠢办法,后来还错了,现在改了,还是蠢办法,等等再去用dp吧,而且本来就只有01用个鸡巴的树状 ...

  8. Undefined index:

    $username=$_POST["username"]; 初学时发现这个错误, Undefined index: username 如果不仔细看,还以为是$username报错, ...

  9. paper 8:支持向量机系列五:Numerical Optimization —— 简要介绍求解求解 SVM 的数值优化算法。

    作为支持向量机系列的基本篇的最后一篇文章,我在这里打算简单地介绍一下用于优化 dual 问题的 Sequential Minimal Optimization (SMO) 方法.确确实实只是简单介绍一 ...

  10. SQL Server2008 错误源:.net SqlClient data provider的解决方法

    今天下午直接在SQL Server 2008的Microsoft SQL Server Management Studio 中修改一张表中某个字段, 不管是删除字符还是添加都提示下面的错误. 网上很多 ...