|
@@ -92,7 +92,7 @@ function SimulatorRenderer(WIDTH, renderer) {
|
|
|
var rtPosition1, rtPosition2, rtVelocity1, rtVelocity2;
|
|
|
|
|
|
function init() {
|
|
|
- var dtPosition = generateDataTexture();
|
|
|
+ var dtPosition = generatePositionTexture();
|
|
|
var dtVelocity = generateVelocityTexture();
|
|
|
|
|
|
rtPosition1 = getRenderTarget();
|
|
@@ -171,28 +171,23 @@ function SimulatorRenderer(WIDTH, renderer) {
|
|
|
|
|
|
}
|
|
|
|
|
|
- function generateDataTexture() {
|
|
|
+ function generatePositionTexture() {
|
|
|
|
|
|
- var x, y, z;
|
|
|
+ var a = new Float32Array( PARTICLES * 3 );
|
|
|
|
|
|
- var w = WIDTH, h = WIDTH;
|
|
|
+ for ( var k = 0; k < PARTICLES; k += 3 ) {
|
|
|
|
|
|
- var a = new Float32Array(PARTICLES * 4);
|
|
|
+ var x = Math.random() * BOUNDS - BOUNDS_HALF;
|
|
|
+ var y = Math.random() * BOUNDS - BOUNDS_HALF;
|
|
|
+ var z = Math.random() * BOUNDS - BOUNDS_HALF;
|
|
|
|
|
|
- for (var k = 0; k < PARTICLES; k++) {
|
|
|
-
|
|
|
- x = Math.random() * BOUNDS - BOUNDS_HALF;
|
|
|
- y = Math.random() * BOUNDS - BOUNDS_HALF;
|
|
|
- z = Math.random() * BOUNDS - BOUNDS_HALF;
|
|
|
-
|
|
|
- a[ k*4 + 0 ] = x;
|
|
|
- a[ k*4 + 1 ] = y;
|
|
|
- a[ k*4 + 2 ] = z;
|
|
|
- a[ k*4 + 3 ] = 1;
|
|
|
+ a[ k + 0 ] = x;
|
|
|
+ a[ k + 1 ] = y;
|
|
|
+ a[ k + 2 ] = z;
|
|
|
|
|
|
}
|
|
|
|
|
|
- var texture = new THREE.DataTexture( a, WIDTH, WIDTH, THREE.RGBAFormat, THREE.FloatType );
|
|
|
+ var texture = new THREE.DataTexture( a, WIDTH, WIDTH, THREE.RGBFormat, THREE.FloatType );
|
|
|
texture.minFilter = THREE.NearestFilter;
|
|
|
texture.magFilter = THREE.NearestFilter;
|
|
|
texture.needsUpdate = true;
|
|
@@ -204,26 +199,21 @@ function SimulatorRenderer(WIDTH, renderer) {
|
|
|
|
|
|
function generateVelocityTexture() {
|
|
|
|
|
|
- var x, y, z;
|
|
|
-
|
|
|
- var w = WIDTH, h = WIDTH;
|
|
|
-
|
|
|
- var a = new Float32Array(PARTICLES * 4);
|
|
|
+ var a = new Float32Array( PARTICLES * 3 );
|
|
|
|
|
|
- for (var k = 0; k < PARTICLES; k++) {
|
|
|
+ for ( var k = 0; k < PARTICLES; k += 3 ) {
|
|
|
|
|
|
- x = Math.random() - 0.5;
|
|
|
- y = Math.random() - 0.5;
|
|
|
- z = Math.random() - 0.5;
|
|
|
+ var x = Math.random() - 0.5;
|
|
|
+ var y = Math.random() - 0.5;
|
|
|
+ var z = Math.random() - 0.5;
|
|
|
|
|
|
- a[ k*4 + 0 ] = x * 10;
|
|
|
- a[ k*4 + 1 ] = y * 10;
|
|
|
- a[ k*4 + 2 ] = z * 10;
|
|
|
- a[ k*4 + 3 ] = 1;
|
|
|
+ a[ k + 0 ] = x * 10;
|
|
|
+ a[ k + 1 ] = y * 10;
|
|
|
+ a[ k + 2 ] = z * 10;
|
|
|
|
|
|
}
|
|
|
|
|
|
- var texture = new THREE.DataTexture( a, WIDTH, WIDTH, THREE.RGBAFormat, THREE.FloatType );
|
|
|
+ var texture = new THREE.DataTexture( a, WIDTH, WIDTH, THREE.RGBFormat, THREE.FloatType );
|
|
|
texture.minFilter = THREE.NearestFilter;
|
|
|
texture.magFilter = THREE.NearestFilter;
|
|
|
texture.needsUpdate = true;
|