Mr.doob 9 سال پیش
والد
کامیت
8c91b85cbe
3فایلهای تغییر یافته به همراه24 افزوده شده و 22 حذف شده
  1. 1 0
      examples/files.js
  2. 5 5
      examples/webgl_buffergeometry_points.html
  3. 18 17
      examples/webgl_buffergeometry_points_interleaved.html

+ 1 - 0
examples/files.js

@@ -244,6 +244,7 @@ var files = {
 		"webgl_buffergeometry_lines",
 		"webgl_buffergeometry_lines_indexed",
 		"webgl_buffergeometry_points",
+		"webgl_buffergeometry_points_interleaved",
 		"webgl_buffergeometry_rawshader",
 		"webgl_buffergeometry_selective_draw",
 		"webgl_buffergeometry_uint",

+ 5 - 5
examples/webgl_buffergeometry_points.html

@@ -45,7 +45,7 @@
 
 			var camera, scene, renderer;
 
-			var mesh;
+			var points;
 
 			init();
 			animate();
@@ -110,8 +110,8 @@
 
 				var material = new THREE.PointsMaterial( { size: 15, vertexColors: THREE.VertexColors } );
 
-				particleSystem = new THREE.Points( geometry, material );
-				scene.add( particleSystem );
+				points = new THREE.Points( geometry, material );
+				scene.add( points );
 
 				//
 
@@ -157,8 +157,8 @@
 
 				var time = Date.now() * 0.001;
 
-				particleSystem.rotation.x = time * 0.25;
-				particleSystem.rotation.y = time * 0.5;
+				points.rotation.x = time * 0.25;
+				points.rotation.y = time * 0.5;
 
 				renderer.render( scene, camera );
 

+ 18 - 17
examples/webgl_buffergeometry_points_interleaved.html

@@ -45,7 +45,7 @@
 
 			var camera, scene, renderer;
 
-			var mesh;
+			var points;
 
 			init();
 			animate();
@@ -67,7 +67,7 @@
 				var geometry = new THREE.BufferGeometry();
 
 				var interleaved_buffer_float32 = new Float32Array( particles * 4 );
-				interleaved_buffer_uint8 = new Uint8Array(interleaved_buffer_float32.buffer)
+				var interleaved_buffer_uint8 = new Uint8Array( interleaved_buffer_float32.buffer );
 
 				var color = new THREE.Color();
 
@@ -81,7 +81,7 @@
 					var y = Math.random() * n - n2;
 					var z = Math.random() * n - n2;
 
-					interleaved_buffer_float32[ i ]     = x;
+					interleaved_buffer_float32[ i + 0 ] = x;
 					interleaved_buffer_float32[ i + 1 ] = y;
 					interleaved_buffer_float32[ i + 2 ] = z;
 
@@ -93,27 +93,28 @@
 
 					color.setRGB( vx, vy, vz );
 
-					interleaved_buffer_uint8[ 4*(i + 3)+0] = color.r*255;
-					interleaved_buffer_uint8[ 4*(i + 3)+1] = color.g*255;
-					interleaved_buffer_uint8[ 4*(i + 3)+2] = color.b*255;
-					interleaved_buffer_uint8[ 4*(i + 3)+3] = 0;
+					var j = ( i + 3 ) * 4;
+
+					interleaved_buffer_uint8[ j + 0 ] = color.r * 255;
+					interleaved_buffer_uint8[ j + 1 ] = color.g * 255;
+					interleaved_buffer_uint8[ j + 2 ] = color.b * 255;
+					interleaved_buffer_uint8[ j + 3 ] = 0;
 
 				}
 
-				ibp = new THREE.InterleavedBuffer(interleaved_buffer_float32, 4);
-				ibc = new THREE.InterleavedBuffer(interleaved_buffer_uint8, 16);
-				
-				geometry.addAttribute( 'position', new THREE.InterleavedBufferAttribute(ibp, 3, 0, false ) );
-				geometry.addAttribute( 'color', new THREE.InterleavedBufferAttribute(ibc, 3, 12, true ) );
+				var ibp = new THREE.InterleavedBuffer( interleaved_buffer_float32, 4 );
+				var ibc = new THREE.InterleavedBuffer( interleaved_buffer_uint8, 16 );
 
-				geometry.computeBoundingSphere();
+				geometry.addAttribute( 'position', new THREE.InterleavedBufferAttribute( ibp, 3, 0, false ) );
+				geometry.addAttribute( 'color', new THREE.InterleavedBufferAttribute( ibc, 3, 12, true ) );
+				// geometry.computeBoundingSphere();
 
 				//
 
 				var material = new THREE.PointsMaterial( { size: 15, vertexColors: THREE.VertexColors } );
 
-				particleSystem = new THREE.Points( geometry, material );
-				scene.add( particleSystem );
+				points = new THREE.Points( geometry, material );
+				scene.add( points );
 
 				//
 
@@ -159,8 +160,8 @@
 
 				var time = Date.now() * 0.001;
 
-				particleSystem.rotation.x = time * 0.25;
-				particleSystem.rotation.y = time * 0.5;
+				points.rotation.x = time * 0.25;
+				points.rotation.y = time * 0.5;
 
 				renderer.render( scene, camera );