查看: 1759|回复: 5

浅拷贝会造成帧速下降?

[复制链接]

该用户从未签到

发表于 2009-10-16 15:53:50 | 显示全部楼层 |阅读模式
本帖最后由 Jeff 于 2009-10-16 15:56 编辑

我导出了一个物体的精模。编写代码的时候,分别用SHALLOW_COPY和DEEP_COPY_ALL对Node进行了克隆试验,每次克隆十个。结果发现SHALLOW_COPY的帧速严重下降。而深拷贝则影响不大。请问这是什么原因造成的

该用户从未签到

发表于 2009-10-16 15:57:48 | 显示全部楼层
通常来说深拷贝影响帧率相对而言较大~~~不太清楚你的问题,,需要你提供更多的信息~~~~~~

该用户从未签到

 楼主| 发表于 2009-10-16 16:02:56 | 显示全部楼层
一个汽车的精模,用Node->clone(osg::CopyOp::SHALLOW_COPY)进行拷贝,一共拷贝了十个。渲染出来后,基本上卡的不动了。
而用DEEP_COPY_ALL,帧速保持在了十几帧左右。

该用户从未签到

 楼主| 发表于 2009-10-16 16:11:20 | 显示全部楼层
osg::Node *node = osgDB::readNodeFile("BLACK BLAC.IVE");

                m_pRoot->addChild(node);

                for (int i = 0; i<9; i++)
                {
                        osg::Node *node2 = (osg::Node*)node->clone(osg::CopyOp::SHALLOW_COPY);

                        m_pRoot->addChild(node2);

                }

找一个精细的模型,运行的时候分别用深拷贝和浅拷贝。十分明显,深拷贝的帧率比浅拷贝的帧率高很多

该用户从未签到

发表于 2009-10-17 00:11:09 | 显示全部楼层
您在做什么!把一个节点的指针十一次赋给同一个根节点?(浅拷贝只是传递指针)那样无论怎么死机都不为过,因为根本无法预知下一步会发生什么

该用户从未签到

发表于 2011-9-7 10:20:01 | 显示全部楼层
哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表