我有这应该制作一个简单的火焰效果以下简单的功能,我建立了代码的实际显示部分从这里开始:three.js所Sparks.js - “断言失败,池跑出”
http://jeromeetienne.github.io/sparkseditor/
每当我运行该函数,它似乎耗尽池(最大粒子),然后死亡,在屏幕上没有可见的痕迹。我使用r53,而很多(如果不是全部)sparks.js示例使用r47,不知道这是否相关。
你可以找到在这里产生错误的实际文件:
http://jeromeetienne.github.io/threex/docs/threex.sparks.html
而对于我下面的火焰代码:提前
var position = data.status.position;
var group = new Object3D();
scene.add(group);
var sparks = new THREEx.Sparks({
maxParticles : 10,
counter : new SPARKS.SteadyCounter(300)
});
var emitter = sparks.emitter();
var color = function() {
this.initialize = function(emitter, particle) {
particle.target.color().setHSV(0.4, 0.8, 0.4);
particle.target.size(100);
};
};
emitter.addInitializer(new color());
emitter.addInitializer(new SPARKS.Position(new SPARKS.PointZone(new THREE.Vector3(
position.x, position.y, position.z
))));
emitter.addInitializer(new SPARKS.Lifetime(0, 0.8));
emitter.addInitializer(new SPARKS.Velocity(new SPARKS.PointZone(new THREE.Vector3(
position.x, position.y-100, position.z
))));
emitter.addAction(new SPARKS.Age());
emitter.addAction(new SPARKS.Move());
emitter.addAction(new SPARKS.RandomDrift(1000,0,1000));
emitter.addAction(new SPARKS.Accelerate(0,-200,0));
emitter.addCallback('created', function(particle) {
group.add(particle);
});
emitter.addCallback('dead', function(particle) {
particle.target.visible = false;
group.remove(particle);
});
emitter.start();
感谢,任何帮助是非常赞赏: )
Spark.js已过时,与最新版本的Three.js不兼容。我强烈建议使用最新的Three.js版本,但对老版本的支持并不多。这可能意味着你只需要使用没有spark.js的Three.js粒子系统。 你应该使用'ShaderMaterial'。 – 2013-05-28 02:39:25
我得到了同样的问题,因为你有。我搜索了这个问题,而不是去了解'SPARK-js'不再被支持,对于'particle system'我们应该使用最新版本或者去'shaders' – 2013-05-28 02:43:56