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

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

【问题讨论】:

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

标签: performance import three.js collada


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 2012-08-10
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2013-02-18
    • 2020-04-11
    • 1970-01-01
    相关资源
    最近更新 更多