我有以下简单的函数,它应该产生一个简单的火焰效果,我从这里构建代码的实际显示部分:
http://jeromeetienne.github.io/sparkseditor/
每当我运行该函数时,它似乎耗尽了池(最大粒子数),然后死亡,屏幕上看不到它的踪迹。我使用的是r53,而即使不是所有的sparks.js示例都使用r47,也有许多示例使用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();提前感谢,任何帮助都是非常感谢的:)
发布于 2013-06-24 09:00:32
我最近写了一个粒子引擎,它能够实现包括火焰效果在内的特殊效果,目前使用的是Three.js v.56:
http://stemkoski.github.io/Three.js/Particle-Engine.html
在http://stemkoski.blogspot.com/2013/06/creating-particle-effects-engine-in.html上有一篇附带的博客文章,其中包含相关的细节。也许可以修改这段代码以满足您的需求?
希望这能有所帮助!
https://stackoverflow.com/questions/16231816
复制相似问题