打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用Ogre绘制立方体--createManualObject
用Ogre来绘制一个立方体
  1. ManualObject* cube;
  2. cube = mSceneMgr->createManualObject("cube");
  3. cube->begin("cubeMaterial");
  4.    // 顶点
  5.    cube->position( -100, -100, -100);   //0
  6.    cube->colour(0.0, 0.0, 0.0);
  7.    cube->position( 100, -100, -100);    //1
  8.    cube->colour(1.0, 0.0, 0.0);
  9.    cube->position( 100, -100, 100);    //2
  10.    cube->colour(1.0, 0.0, 1.0);
  11.    cube->position( -100, -100, 100);    //3
  12.    cube->colour(0.0, 0.0, 1.0);
  13.    cube->position( -100, 100, -100);    //4
  14.    cube->colour(0.0, 1.0, 0.0);
  15.    cube->position( 100, 100, -100);    //5
  16.    cube->colour(1.0, 1.0, 0.0);
  17.    cube->position( 100, 100, 100);    //6
  18.    cube->colour(1.0, 1.0, 1.0);
  19.    cube->position( -100, 100, 100);    //7
  20.    cube->colour(0.0, 1.0, 1.0);
  21.    //// 索引
  22.    cube->triangle(0, 2, 1);
  23.    cube->triangle(0, 2, 3);
  24.    cube->triangle(3, 4, 0);
  25.    cube->triangle(3, 7, 4);
  26.    cube->triangle(4, 7, 6);
  27.    cube->triangle(4, 6, 5);
  28.    cube->triangle(5, 2, 1);
  29.    cube->triangle(5, 6, 2);
  30.    cube->triangle(0, 4, 1);
  31.    cube->triangle(5, 1, 4);
  32.    cube->triangle(3, 6, 7);
  33.    cube->triangle(3, 2, 6);
  34. cube->end();
  35. SceneNode* sn = mSceneMgr->getRootSceneNode()->createChildSceneNode();
  36. sn->attachObject(cube);

在上个立方体的基础上加上6个贴图
  1. // 创建六个纹理
  2. MaterialPtr material = MaterialManager::getSingletonPtr()->create("q""General");
  3. material->getTechnique(0)->getPass(0)->createTextureUnitState("q.jpg");
  4. material = MaterialManager::getSingletonPtr()->create("a""General");
  5. material->getTechnique(0)->getPass(0)->createTextureUnitState("a.jpg");
  6. material = MaterialManager::getSingletonPtr()->create("z""General");
  7. material->getTechnique(0)->getPass(0)->createTextureUnitState("z.jpg");
  8. material = MaterialManager::getSingletonPtr()->create("x""General");
  9. material->getTechnique(0)->getPass(0)->createTextureUnitState("x.jpg");
  10. material = MaterialManager::getSingletonPtr()->create("s""General");
  11. material->getTechnique(0)->getPass(0)->createTextureUnitState("s.jpg");
  12. material = MaterialManager::getSingletonPtr()->create("w""General");
  13. material->getTechnique(0)->getPass(0)->createTextureUnitState("w.jpg");
  14. ManualObject* cube;
  15. cube = mSceneMgr->createManualObject("cube");
  16. /// 下面, begin的第一个参数为要设置的材质名称
  17. cube->begin("q", RenderOperation::OT_TRIANGLE_FAN);
  18.   cube->position( -100, -100, -100);   //0
  19.   cube->textureCoord(1, 0);
  20.   cube->position( 100, -100, -100);    //1
  21.   cube->textureCoord(0, 0);
  22.   cube->position( 100, -100, 100);    //2
  23.   cube->textureCoord(0, 1);
  24.   cube->position( -100, -100, 100);    //3
  25.   cube->textureCoord(1, 1);
  26. cube->end();
  27. /// 左面
  28. cube->begin("a", RenderOperation::OT_TRIANGLE_FAN);
  29.   cube->position( -100, -100, 100);    //3
  30.   cube->textureCoord(1, 0);
  31.   cube->position( -100, 100, 100);    //7
  32.   cube->textureCoord(0, 0);
  33.   cube->position( -100, 100, -100);    //4
  34.   cube->textureCoord(0, 1);
  35.   cube->position( -100, -100, -100);   //0
  36.   cube->textureCoord(1, 1);
  37. cube->end();
  38. /// 上面
  39. cube->begin("z", RenderOperation::OT_TRIANGLE_FAN);
  40.   cube->position( -100, 100, -100);    //4
  41.   cube->textureCoord(1, 0);
  42.   cube->position( -100, 100, 100);    //7
  43.   cube->textureCoord(0, 0);
  44.   cube->position( 100, 100, 100);    //6
  45.   cube->textureCoord(0, 1);
  46.   cube->position( 100, 100, -100);    //5
  47.   cube->textureCoord(1, 1);
  48. cube->end();
  49.         
  50. /// 右面
  51. cube->begin("x", RenderOperation::OT_TRIANGLE_FAN);
  52.   cube->position( 100, -100, -100);    //1
  53.   cube->textureCoord(1, 0);
  54.   cube->position( 100, 100, -100);    //5
  55.   cube->textureCoord(0, 0);
  56.   cube->position( 100, 100, 100);    //6
  57.   cube->textureCoord(0, 1);
  58.   cube->position( 100, -100, 100);    //2
  59.   cube->textureCoord(1, 1);
  60. cube->end();
  61. /// 前面
  62. cube->begin("s", RenderOperation::OT_TRIANGLE_FAN);
  63.   cube->position( 100, -100, -100);    //1
  64.   cube->textureCoord(1, 0);
  65.   cube->position( -100, -100, -100);   //0
  66.   cube->textureCoord(0, 0);
  67.   cube->position( -100, 100, -100);    //4
  68.   cube->textureCoord(0, 1);
  69.   cube->position( 100, 100, -100);    //5
  70.   cube->textureCoord(1, 1);
  71. cube->end();
  72. /// 后面
  73. cube->begin("w", RenderOperation::OT_TRIANGLE_FAN);
  74.   cube->position( 100, -100, 100);    //2
  75.   cube->textureCoord(1, 0);
  76.   cube->position( 100, 100, 100);    //6
  77.   cube->textureCoord(0, 0);
  78.   cube->position( -100, 100, 100);    //7
  79.   cube->textureCoord(0, 1);
  80.   cube->position( -100, -100, 100);    //3
  81.   cube->textureCoord(1, 1);
  82. cube->end();
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
42张简单完美的立方体结构建筑摄影
立方体小屋(Cube House)
数学部分术语总汇 - 行业技术 - 资料区 - 六西格玛品质论坛 -质量-SPC ,six sigma,TS16949,MSA,FMEA
3d cube
AMC美国数学竞赛常用词汇大全
Tutorial 4 : A Colored Cube | opengl
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服