三个js万面渲染性能collada文件

Posted

技术标签:

【中文标题】三个js万面渲染性能collada文件【英文标题】:Threejs million faces rendering performace collada files 【发布时间】:2016-12-03 20:40:35 【问题描述】:

我有两个 .dae 文件,一个有 100 万张面孔,第二个有 2000 万张面孔。 我使用 ColladaLoader 导入了它们。 问题是 2000 万张面孔以 30fps 运行,而 100 万张面孔以 2fps 运行。 那个怎么样?我该如何解决?

【问题讨论】:

决定性能的不仅仅是面数。你能提供一个代码示例吗?其他因素可能是:网格的数量、材质的数量和类型、实际渲染的面数等等。 【参考方案1】:

您必须检查这些模型中有多少个网格。性能很大程度上取决于模型中绘制调用(网格)的数量,因为更多的绘制调用意味着更多的数据传递到 GPU。

例如,我有一个包含 350 万个面的网格,它有超过 1000 个网格。我为此获得了 20 fps。但是当我将所有网格合并为一个网格时,我得到了 60 fps。

此问题的解决方案是将网格的几何形状合并为一个,并使用该几何形状构建单个网格。对于BufferGeometry,可以合并所有的顶点数组、颜色数组和法线数组。对于合并索引数组,您必须为每个索引值添加基础顶点。

【讨论】:

以上是关于三个js万面渲染性能collada文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Three.JS 中通过鼠标单击选择 Collada 对象

三个 js - 你可以克隆从 collada 文件加载的动画吗?

使用 COLLADA DOM 将 COLLADA 文档输出为字符串

Three.js Collada - 在三个 js 中加载多个 Collada 对象

three.js 图像纹理渲染为颜色(使用 ColladaLoader 加载)

三个.js Collada 纹理未加载