Flame er ikke vist i Three.js Verden

stemmer
0

Jeg gjør en flamme ved hjelp av Three.js og spark.js, men når jeg gjør verden jeg ikke kan se flammen og verden er tom. Jeg så konsollen for feilen, men det er ingen feil om dette. Jeg prøvde mye, men kan ikke finne ut den faktiske feil. Her er koden.

threexSparks = new THREEx.Sparks({
                    maxParticles : 400,
                    counter : new SPARKS.SteadyCounter(300)
                });
                //threexSparks.position.x = 1000;
                // setup the emitter
                //var emitter   = threexSparks.emitter();

                var counter = new SPARKS.SteadyCounter(500);
                var emitter = new SPARKS.Emitter(counter);

                var initColorSize = function() {
                    this.initialize = function(emitter, particle) {
                        particle.target.color().setHSV(0.3, 0.9, 0.4);
                        particle.target.size(150);
                    };
                };

                emitter.addInitializer(new initColorSize());
                emitter.addInitializer(new SPARKS.Position(new SPARKS.PointZone(new THREE.Vector3(1000, 0, 0))));
                emitter.addInitializer(new SPARKS.Lifetime(0, 0.8));
                emitter.addInitializer(new SPARKS.Velocity(new SPARKS.PointZone(new THREE.Vector3(0, 250, 00))));

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

Takk

Publisert på 15/05/2013 klokken 04:47
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Tere er merkelige problemer med partikler og WebGL gjengi. Det vil være bra hvis du bruker CanvasRender. Men for WebGL ikke. Også i koden du glemte å lage threejs objekter for partikler. Sparks.js tillater eneste grensesnittet for partikler. Men du trenger for å lage partikler selv. Du kan se på min jsfiddle eksempel. det jeg bruker modifisert versjon av sparks.js biblioteket. Endringer bare for å være i stand til å overstyre VectorPool atferd.

http://jsfiddle.net/YeJ4X/35/

Hoveddel det er:

var particleCount = 1800,
    particles = new THREE.Geometry(),               //store particle vertices
    pMaterial = new THREE.ParticleBasicMaterial({
        size: 10,
        map: txture,                    //in jsfiddle i create texture from canvas
        transparent: true
      });
var particleSystem = new THREE.ParticleSystem(particles, pMaterial); //threejs particle system

//initialize our particles (and set that are dirty). sparkjs initialize it later for us   
for(var p = 0; p < particleCount; p++) {
    v = new THREE.Vector3(numMax,numMax,numMax);
    v.isDirty=true;
    particles.vertices.push(v);
}
SPARKS.VectorPool.__pools = particles.vertices; //initialize vectors pool

Og det er min nye vektor basseng for sparksjs

SPARKS.VectorPool = {
    __pools: [],
    get: function() {
        var ret = _.find(this.__pools, function(v){return v.isDirty});
        ret.isDirty=false;
        return ret;
    },
    release: function(v) {
        v.isDirty=true;
        v.set(numMax,numMax,numMax);
    }
};

Selvfølgelig må du bryr deg om telling av partices som brukes i sparks.js og precreated av hender.

Min sparkjs gaffel er her: https://github.com/elephanter/sparks.js der jeg fikse problemet med nyeste tweenjs og legge andre små endringene jeg beskrevet før.

Svarte 14/06/2013 kl. 08:43
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more