Como otimizar a renderização de muitos sphereGeometry em three.js?
Gostaria de otimizar a renderização do sphereGeometry no three.js, pois ele se torna um gargalo no meu programa. O programa javascript é mostrado da seguinte maneira:
var sphereThree = [];
for(var idSphere = 0; idSphere < numSphere; idSphere++){
var sphereGeometry = new THREE.SphereGeometry(1.0);
var sphereMaterial = new THREE.MeshLambertMaterial({color: 'rgb(255, 0, 0)'});
sphereThree[idSphere] = new THREE.Mesh(sphereGeometry, sphereMaterial);
sphereThree[idSphere].position.x = x[idSphere];
sphereThree[idSphere].position.y = y[idSphere];
sphereThree[idSphere].position.z = z[idSphere];
scene.add(sphereThree[idSphere]);
}
Conforme mencionado nos links a seguir:
- Animando um milhão de letras usando o Three.js
- Otimizando o desempenho do Three.js: simulando dezenas de milhares de objetos móveis independentes
eles apontaram que não devemos adicionar objetos individualmente e, melhor, adicionar o mesmo tipo de objetos ao mesmo tempo para a otimização. No entanto, como sou novo nesse campo, não faço ideia de como codificar essa otimização ao usar o SphereGeometry.
Se alguém souber codificá-las usando o SphereGeometry, ou alguém que conheça um método eficiente para renderizar muitas (10.000 ou mais) esferas, você poderia nos ensinar?
Obrigado!