三个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 对象