zoukankan      html  css  js  c++  java
  • 效率问题节点删除等

    猜测一 :大量节点会导致帧率下降

    懒得去验证 至少如果可以没有这么多的节点也能好使 就应该去掉 。若无必要勿增实体

    蓝特尼斯1。不到必要的时候不要加载资源,2。一旦确定后面有一长段时间不需要的资源,必须立刻卸载

        这里的资源包括任何进入内存的对象,比如文件句柄、内存分配,对象分配等等

    所以这里是必须优化的

    猜测二:每个cube都画了6个面,实际上紧挨的两个cube中间遮盖住的面是不用画的 

       要解决这个问题一个可能的方法是 用manulobj只画 外层的面至于效率如何。。

      如果能开ogre mesh 的遮挡面剔除HBR 此问题可解

    有关节点删除问题 看到一篇好帖子

    How to efficiently add and remove 3D-objects from the scene during run-time (like rockets being fired)

    他说动态加载mesh的时候 会非常慢尽管在小项目里看不出差别,,,解决方案是 在createscene的时候加载一堆mensh放到stack里面  用的时候pop  不用了就push
    上代码吧 代码总是容易说明问题
    stack rocketEntities;
    
    
    
    for (unsigned int t = 0; t < 100; t++)
        {
          char tmp[20];
          sprintf(tmp, "rocket_%d", t);
          Entity* newRocketEntity = mSceneMgr->createEntity(tmp, "Rocket.mesh");
          newRocketEntity->setVisible(false);
          rocketEntities.push(newRocketEntity);
        }
    
    
    
    
    class Rocket
        {
        protected:
          SceneNode* rocketNode;
          string rocketEntityName;
        public:
          Rocket(const Vector3& position, const Quaternion& direction)
          {
            rocketNode = static_cast<SceneNode*>(sceneMgr->getRootSceneNode()->createChild());
            Entity* rocketEntity = rocketEntities.top();
            rocketEntities.pop();
            rocketEntity->setVisible(true);
            rocketEntityName = rocketEntity->getName();
            rocketNode->attachObject(rocketEntity);
            rocketNode->setOrientation(direction);
            rocketNode->setPosition(position);
          }
          ~Rocket()
          {
            Entity* rocketEntity = static_cast<Entity*>(rocketNode->detachObject(rocketEntityName));
            rocketEntity->setVisible(false);
            rocketEntities.push(rocketEntity);
            sceneMgr->getRootSceneNode()->removeAndDestroyChild(rocketNode->getName());
          }
        };
    

    引用http://www.ogre3d.org/tikiwiki/OogstsHowTo

    应该可以用到方块上的这个原理 每次的那四个小块 就不要再clone了,总体结构似乎要重新做啊。也不知道clone和stack的效率 哪个高些 

  • 相关阅读:
    C++ CGI Helloword
    国内外12个免费域名解析服务网站推荐
    U制作LFS linux
    LFS 中文版手册发布:如何打造自己的 Linux 发行版
    windows下的BT服务器搭建方案
    Linux下搭建BT服务器
    Codeforces 842B Gleb And Pizza【几何,水】
    Codeforces 842A Kirill And The Game【暴力,水】
    Wannafly模拟赛 A.矩阵(二分答案+hash)
    数据结构学习笔记【持续更新】
  • 原文地址:https://www.cnblogs.com/minggoddess/p/1904979.html
Copyright © 2011-2022 走看看