您现在的位置:首页 --> 查看专题: 运算
去年的时候,我们对正在开发中的游戏引擎做了一点 profile 工作。后来发现,在场景中对象很多的时候,有一处运算占据了 10% 以上的 cpu 时间。当时我的判断是,这处地方值得优化,但并不是工作重点,所以就搁置了。
问题的具体描述是这样的:
我们的引擎每帧会将场景中的对象依次提交到一个渲染队列中,每个可渲染物件,除了自身的网格、材质外,还有它自身的包围盒(通常是 AABB),以及它在世界空间中的矩阵。
我们有一套资源系统,场景中的对象会引用资源系统中的对象,这些资源对象是一个不变量,会被多个场景对象所引用。而资源对象又可以是一个树结构,比如一个模型就可以由若干子模型所构成。提交到最终渲染队列中的是不可再拆分的子模型的信息。
也就是说,在场景管理的层次,对象的数量是远少于提交到渲染队列中的对象数量的。这就是为什么我们渲染每次重建渲染队列,而没有将每帧提交给渲染队列的列表持久化为一
看看能不能一眼识破:)
本刊评论 首先,问这个问题的人是个天才,他怎么会遇到这样的一个问题。其次,回答这个问题的人更是一个天才,我难以想象他会回答这个问题,更难以想象的是,他的回答是如此的详细和丰富和完整,真正称得上诲人不倦。 既然遇到了这个问题,我们不妨也跟着提高一下。 这是一个Javascript语言题目,一个完全有效的等式,不信自己可以试一下,下面看看高人的题解: ++[[]][+[]]+[+[]] 如果把这段表达式拆分开来,它相...
[ 共3篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [393] 如何拿下简短的域名
- [392] WEB系统需要关注的一些点
- [11] Python中的闭包
- [11] 关于身份证号的那些事
- [11] Mysql监控指南
- [11] 大并发下的高性能编程 – 改进的(用户态)自
- [10] Zookeeper工作原理
- [10] 一致性哈希算法及其在分布式系统中的应用
- [10] 分布式系统的事务处理
- [9] [Perl]Moose::Manual::T
赞助商广告