[Ogre]纹理设置
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]纹理设置的更多相关文章
- Unity 用户手册用户指南二维纹理 (Texture 2D)
http://www.58player.com/blog-2327-953.html 二维纹理 (Texture 2D) 纹理 (Textures) 使您的 网格 (Meshes).粒子 (Parti ...
- Unity3d之Shader编程:子着色器、通道与标签的写法 & 纹理混合
一.子着色器 Unity中的每一个着色器都包含一个subshader的列表,当Unity需要显示一个网格时,它能发现使用的着色器,并提取第一个能运行在当前用户的显示卡上的子着色器. 我们知道,子着色器 ...
- Stage3D学习笔记(五):通过矩阵操作纹理
虽然我们上一节已经实现了正交矩阵的显示,但是可以明显的感觉到要调整显示纹理的坐标和尺寸是相当复杂的,需要对每个顶点进行操作,如果还要加上注册点和旋转的话,用上一节的方法来做是会让人发疯的! 所以我们距 ...
- cocos2d-x 添加纹理自动回收机制
转自:http://www.cnblogs.com/lancidie/archive/2013/04/13/3019375.html 1.不是一个完整的模块,所以不提供完整代码,只提供思路和核心代码. ...
- 制作UI纹理(UI Texture)
什么情况下使用UI Texture UI Texture的功能是在屏幕上显示一张图片,在这一点上它和Sprite有着相似的功能,但是UI Texture会消耗单独的DrawCall去渲染,并会单独加载 ...
- DirectX11--深入理解与使用2D纹理资源
前言 写教程到现在,我发现有关纹理资源的一些解说和应用都写的太过分散,导致连我自己找起来都不方便.现在决定把这部分的内容整合起来,尽可能做到一篇搞定所有2D纹理相关的内容,其中包括: DDSTextu ...
- 关于Cocos2d-x节点和精灵节点的坐标、位置以及大小的设置
1.cocos2d-X中的坐标(0,0),就是运行框的左下角位置,所以运行框看起来就是一个第一象限. 2.节点的锚点就是我们setPosition所设定的位置,默认锚点是在节点的中心,也就是setPo ...
- DXVA2解码数据用texture纹理渲染
FFmpeg DXVA2解码得到的数据使用surface来承载的,surface限制很多,如果能用纹理来渲染的话,那我们就可以充分开发D3D,比如可以用坐标变换来实现电子放大的功能,还可以用坐标变换来 ...
- 二维纹理 Texture 2D
Textures bring your Meshes, Particles, and interfaces to life! They are image or movie files that yo ...
随机推荐
- python password输入
1.linux下用getpass,没有星号提示,符合linux风格 from getpass import getpasspwd = getpass('Enter the password: ') 2 ...
- MVVM框架思想
1.MVVM是什么? M:模型 V:视图 VM:视图模型 简单理解:mvc是一个cell面向一个model开发 mvvm是一个cell面向一个viewModel开发, viewModel里面又包含mo ...
- scrollView中的pagingEnabled的功能
pagingEnabled是分页设置,以页为单位滑动,即自动到下一页的开始边界
- 事件监听addEventListener()和removeEventListener() ---------1
一直想写一个原生事件监听的记录,方便以后看,不愿意写主要是事件监听的单词太长,记起来好难记每次都要查,这次把知道的写完了,来这里查好了,以后要是理解的更透彻了,就再补全好了 首先,DOM0级事件和DO ...
- C#面向对象的方法写数组的功能
上一篇文章用Java方法写出了可以对数组执行的功能,然后在用实例化后的对象调用这些方法来实现这些功能: 这篇随笔改用C#语言实现同样的功能 方法类:Array using System; using ...
- escape()、encodeURI()、encodeURIComponent() difference
escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编 ...
- Fedora20 MATE Destop 环境下安装Sougoupinyin输入法+皮肤
卸载ibus # yum erase ibus* 选择性安装 fcitx # yum install fcitx fcitx-configtool $ ls -a $ vi .bashrc .bas ...
- 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 ...
- html随笔
<!DOCTYPE HTML> <html> <head> <meta charset = "utf-8"> <script ...
- 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 ...