这个是粒子系统的核心处理代码,主要的代码在GPUParticleSystem.js中,调用代码请参考:粒子(1)
这个脚本里主要有两个类:GPUParticleSystem 和 GPUParticleContainer
THREE.Object3D.apply( this, arguments );
每个函数都包含两个非继承而来的方法:call()方法和apply()方法, 这里使用apply改变 Object3D 默认构造函数里面的this,使其指向GPUParticleSystem,帮助 GPUParticleSystem实例生成一些存在于 Object3D 构造函数里的变量。
结合下方的:
THREE.GPUParticleSystem.prototype = Object.create( THREE.Object3D.prototype );
THREE.GPUParticleSystem.prototype.constructor = THREE.GPUParticleSystem;
可以继承 Object3D 里各式各样的函数们。
剩下的代码都是,options里面有参数传来就用options里的,没有就用默认的。
接下来的部分,在GPUParticleShader里面定义了两个shader的处理过程。
uniform</