如何在不借助粒子系统的情况下为 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;
};
理想情况下,我希望能够同时在屏幕上模拟大约 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;
};