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. Autorelease pool

    根据苹果官方文档中对 Using Autorelease Pool Blocks 的描述,我们知道在下面三种情况下是需要我们手动添加 autoreleasepool 的: 如果你编写的程序不是基于 U ...

  2. c# 排序算法总结

    /// <summary> /// 冒泡排序法1 /// </summary> /// <param name="list"></para ...

  3. mongodb远程连接以及备份、还原、导出、导入

    一.远程连接mongodb 连接命令:mongo -u username -p pwd 192.168.41.215:27017/database(用户名对应的数据库) 二.mongodump备份数据 ...

  4. Swift游戏实战-跑酷熊猫 01 创建工程导入素材

    在这节里,我们将建立一个游戏工程,并导入一些必要的素材,例如序列帧动画文件,声音素材文件.动画文件我们使用atlas形式.在打包发布或者模拟器测试的时候,它会将整个.atlas文件夹下的图片打包成一张 ...

  5. Swift实战-豆瓣电台(五)播放音乐

    观看地址 http://v.youku.com/v_show/id_XNzMwODM0MzI0.html 在这节里面,我们简单学习了一下MediaPlayer的使用 引入媒体框架 import Med ...

  6. 如何抠PSD素材中的图片

    在网上经常可以找到一些好看呢的PSD素材,如何才能将这些素材抠出来 存成一张张的png图片呢? 在PhotoShop中 1·隐藏无用的图层,然后窗口中仅剩需要看到的那个素材图 2·用工具选择该区域(注 ...

  7. 转:python webdriver API 之下拉框处理

    下拉框也是 web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位,我们在前面的例子中已经有过使用,下面通过 ...

  8. DataBase: LeetCode

    Combine Two Tables # Write your MySQL query statement below Select p.FirstName, p.LastName, a.City, ...

  9. C++之路进阶——codevs2460(树的统计)

    2460 树的统计 2008年省队选拔赛浙江  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 大师 Master       题目描述 Description 一棵树上有n个节 ...

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

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