如何在不借助粒子系统的情况下为 THREE.js 中的数千颗恒星建模?

How can I model thousands of stars in THREE.js without resorting to a particle system?

理想情况下,我希望能够同时在屏幕上模拟大约 10,000 颗星星。我还希望能够指定个人特征,例如大小和颜色。我试过使用 SphereGeometry() 并为每颗星创建一个单独的网格,但我什至无法使用该方法渲染场景。粒子系统有效,但 color/size 是均匀的,结果是场景看起来不够逼真。有任何想法吗?提前致谢。

由于性能优势,粒子系统非常适合这种情况。

也许可以使用多个粒子系统实现您想要的效果,以及使用不同属性(例如大小和颜色)创建它们的一些逻辑,例如:

var systems = {};

function findOrGenerate(size, color) {
    return systems[size + "x" + color] || (function() {
        var system = new ParticleSystem(size, color);

        systems[system] = system;

        return system;
    })();
}

function ParticleSystem(size, color) {
    this.size = size;
    this.color = color;

    return this;
}

ParticleSystem.prototype.toString = function() {
    return this.size + "x" + this.color;
};