2
我正在模擬運行在我們太陽系周圍的小行星的小行星。你可以看到一個初始實現here。在Three.js中改善粒子系統性能
我將整套軌道對象轉換爲單個ParticleSystem,我可以在我的家用機器上以60fps的速度運行10,000個軌道(筆記本電腦的速度約爲30fps)。 15-20k將我的機器降至30fps。
我運行一個網絡工作者來計算位置的新列表,然後我更新每個對象的位置在主線程像這樣:
for (var j=0; j < positions.length; j++) {
myobjects[j].MoveParticleToPosition(positions[j]);
}
particle_geometry.__dirtyVertices = true;
MoveParticleToPosition:
var vertex_particle = this.particle_geometry.vertices[this.vertex_pos];
vertex_particle.x = pos[0];
vertex_particle.y = pos[1];
vertex_particle.z = pos[2];
我問題是:我如何從這裏提高績效?
例如,是否有更快的方法來更新幾何頂點?有沒有可以應用於粒子系統的優化?是否有可能更新網絡工作者內的頂點?
不再支持__dirty標誌。您可以更新到three.js的當前版本,並查看wiki:https://github.com/mrdoob/three.js/wiki/Updates。 – WestLangley