【发布时间】:2016-03-17 16:13:52
【问题描述】:
我正在使用 Three.Js 在 WEBGL 中开发一个项目。
这个项目由一个静态几何形状的房间和数百把复制的椅子组成。在将整个东西放在一起并使用以下技术优化帧率之后:
椅子实例化 - 每个对象加载一次,然后实例化并循环添加到场景中,使用 object.clone()。
对象选择光线投射的八叉树优化。
所有静态对象的几何合并。
实例化对象的 LOD 级别。
我的表现仍然很糟糕,当所有场景放在一起时只有 15fps。我正在使用两个定向灯和一个半球灯。
经过一番试验,似乎瓶颈在于几何本身。
有人知道可能是什么问题吗?对于可接受的帧速率,合理的多边形数是多少?会不会是我使用的几何体太重了?
有关信息,
我的房间几何有: 69996点, 290571 个顶点, 82607个原语
我的椅子几何形状有: 1254点, 4884个顶点, 1232个原语
【问题讨论】:
-
感谢您的建议,我一定会尝试分析它,看看是否能找到任何瓶颈。从我的分析到现在,我认为可以公平地说瓶颈在于几何图形,因为当我尝试单独渲染场景的每一块时,我得到了改进的帧速率,因为我添加了块。你会说我可能正在加载我做错了的对象吗?
-
这当然是可能的。但我认为,与其在这里猜测,不如先对其进行概要分析并使用 webgl 检查器,它可能会更有用。然后也许用三个带有相关 api 调用和/或配置文件结果的 js 标签开始另一个问题。
-
几何合并后有统计数据吗?在这一步之后,这数百张椅子最终应该是几十张。
标签: javascript performance three.js webgl