如何快速计算粒子属性?

时间:2015-12-08 22:56:17

标签: particle-system

首先,我可以说我对maths / three.js / webgl只有一个非常基本的知识,很抱歉,如果其中一些问题听起来很糟糕!

无论如何,我想制作一个粒子系统 - 就像这样:https://www.youtube.com/watch?v=jwCAsyiYimY

当我做到这一点时,我意识到我有很多问题!

我创造了一个具有速度和方向等的粒子。

这些被推到了THREE.PointCloud

对于每个渲染循环,我遍历点云中的每个粒子并改变速度/方向,

//move the particles
        for( var i = 0; i < _this.pool.length; i++ ){

            //direction is the mouse pos
            var dir = mousePos;

            //var dir =  new THREE.Vector3(500, 500, 0);   

            dir.sub( _this.pool[i].position).normalize().multiplyScalar(0.10);

            //acceleration
            _this.pool[i].force = dir;

            //velocity
            _this.pool[i].velocity.add( _this.pool[i].force );

            //position
            _this.pool[i].position.add( _this.pool[i].velocity ); 
        }

我想这一切都还可以,直到我开始添加大量粒子,10000或粒子循环通过每个渲染循环,开始减慢速度。

我想我做错了,因为我可以听到麦克风上的粉丝开始吹。

目前我没有使用任何着色器。

有没有一种方法可以将计算,定位,速度等计算到GPU上,因为我会比使用JS计算更快的成像更快?

0 个答案:

没有答案