2013-04-26 2 views
0

J'ai la fonction simple suivante qui est censée produire un simple effet de la flamme, je bâtirai la partie d'affichage réelle du code d'ici:Three.js Sparks.js - « Assertion a échoué, la piscine a couru sur »

Chaque fois que j'exécute la fonction, elle semble épuiser le pool (particules max) puis mourir, sans trace visible sur l'écran. J'utilise r53, alors que beaucoup sinon tous les exemples de sparks.js utilisent r47, je ne sais pas si c'est pertinent.

Vous pouvez trouver le fichier réel produisant l'erreur ici:

http://jeromeetienne.github.io/threex/docs/threex.sparks.html

Et le code de ma flamme ci-dessous:

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(); 

Merci à l'avance, toute aide est très appréciée:

+1

Spark.js est obsolète et n'est pas compatible avec les dernières versions de Three.js. Je recommande fortement d'utiliser la dernière version de Three.js, vous n'obtiendrez pas beaucoup de soutien pour les versions plus anciennes. Cela signifie probablement que vous devez utiliser uniquement le système de particules Three.js sans spark.js. Vous devez utiliser 'ShaderMaterial'. –

+0

J'ai le même problème que vous avez. J'ai cherché le problème plutôt que de savoir que 'SPARK-js' n'est plus supporté et pour' particle system' nous devrions utiliser soit la dernière version soit les 'shaders' –

Répondre

Questions connexes