[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 ...
随机推荐
- 前端学习——css实用技术
一,css控制文本样式 文本相关的css属性有很多,包括: color;font-size;font-weight;text-transform(大小写uppercase等);text-decorat ...
- swap文件
# dd if=/dev/zero of=/tmp/myswap bs=1M count=4096 # mkswap /tmp/myswap # swapon /tmp/myswap # vim /e ...
- DG - 将physical standby置于read-only模式
1.备库处于关闭状态 SQL> startup ORACLE instance started. Total System Global Area 430075904 bytes Fixed S ...
- LIS 最长递增子序列
一.最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个 ...
- iOS 提交代码出现提示弹出框显示 “A commit message is required to perform this operation.Enter a commit message and try again.“
需要你写一下你确认提交的信息,就是你这次提交上去修改了什么功能,简单描述一下
- CentOS 7 自动更新时间日期
# ntpdate time.nist.gov 或 # rdate -s time.nist.gov 下列服务器可用 time-nw.nist.gov
- web1
<!DOCTYPE html> <html> <head> <title>web0923</title> <script> fu ...
- [原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- android fragment+ FragmentTabHost+viewpager 切换状态不保存的问题
转载请注明出处:http://blog.csdn.net/djy1992/article/details/46674169 @author dujinyang 难得有时间上来写博客. fragment ...
- rails创建项目,部署,测试流程(rails5.0+ruby2.3.1)
rails new test_app --skip-test-unit 不生成默认的test,稍后用rspeccd test_app 修改Gemfile(大部分为自动生成) source 'https ...