فهرست منبع

Updated src and examples to latest BufferGeometry API.

Mr.doob 11 سال پیش
والد
کامیت
dfffeef1da

+ 8 - 8
examples/webgl_buffergeometry.html

@@ -82,10 +82,10 @@
 
 				var geometry = new THREE.BufferGeometry();
 
-				geometry.addAttribute( 'index', Uint16Array, triangles * 3, 1 );
-				geometry.addAttribute( 'position', Float32Array, triangles * 3, 3 );
-				geometry.addAttribute( 'normal', Float32Array, triangles * 3, 3 );
-				geometry.addAttribute( 'color', Float32Array, triangles * 3, 3 );
+				geometry.addAttribute( 'index', new Uint16Array( triangles * 3 ), 1 );
+				geometry.addAttribute( 'position', new Float32Array( triangles * 3 * 3 ), 3 );
+				geometry.addAttribute( 'normal', new Float32Array( triangles * 3 * 3 ), 3 );
+				geometry.addAttribute( 'color', new Float32Array( triangles * 3 * 3 ), 3 );
 
 				// break geometry into
 				// chunks of 21,845 triangles (3 unique vertices per triangle)
@@ -94,7 +94,7 @@
 
 				var chunkSize = 21845;
 
-				var indices = geometry.attributes.index.array;
+				var indices = geometry.getAttribute( 'index' ).array;
 
 				for ( var i = 0; i < indices.length; i ++ ) {
 
@@ -102,9 +102,9 @@
 
 				}
 
-				var positions = geometry.attributes.position.array;
-				var normals = geometry.attributes.normal.array;
-				var colors = geometry.attributes.color.array;
+				var positions = geometry.getAttribute( 'position' ).array;
+				var normals = geometry.getAttribute( 'normal' ).array;
+				var colors = geometry.getAttribute( 'color' ).array;
 
 				var color = new THREE.Color();
 

+ 7 - 8
examples/webgl_buffergeometry_custom_attributes_particles.html

@@ -89,7 +89,7 @@
 
 		var noise = [];
 		var values_size;
-		//500000
+
 		var particles = 100000;
 
 		var WIDTH = window.innerWidth;
@@ -137,14 +137,13 @@
 
 			geometry = new THREE.BufferGeometry();
 
-			geometry.addAttribute( 'position', Float32Array, particles, 3 );
-			geometry.addAttribute( 'customColor', Float32Array, particles, 3 );
-			geometry.addAttribute( 'size', Float32Array, particles, 1 );
-			geometry.attributes.size.dynamic = true;
+			geometry.addAttribute( 'position', new Float32Array( particles * 3 ), 3 );
+			geometry.addAttribute( 'customColor', new Float32Array( particles * 3 ), 3 );
+			geometry.addAttribute( 'size', new Float32Array( particles ), 1 );
 
-			values_size = geometry.attributes.size.array;
-			var positions = geometry.attributes.position.array;
-			var values_color = geometry.attributes.customColor.array;
+			var positions = geometry.getAttribute( 'position' ).array;
+			var values_color = geometry.getAttribute( 'customColor' ).array;
+			values_size = geometry.getAttribute( 'size' ).array;
 
 			sphere = new THREE.ParticleSystem( geometry, shaderMaterial );
 

+ 4 - 4
examples/webgl_buffergeometry_lines.html

@@ -69,11 +69,11 @@
 				var geometry = new THREE.BufferGeometry();
 				var material = new THREE.LineBasicMaterial({ vertexColors: true });
 
-				geometry.addAttribute( 'position', Float32Array, segments, 3 );
-				geometry.addAttribute( 'color', Float32Array, segments, 3 );
+				geometry.addAttribute( 'position', new Float32Array( segments * 3 ), 3 );
+				geometry.addAttribute( 'color', new Float32Array( segments * 3 ), 3 );
 
-				var positions = geometry.attributes.position.array;
-				var colors = geometry.attributes.color.array;
+				var positions = geometry.getAttribute( 'position' ).array;
+				var colors = geometry.getAttribute( 'color' ).array;
 
 				var r = 800;
 

+ 4 - 11
examples/webgl_buffergeometry_lines_indexed.html

@@ -181,19 +181,12 @@
 				);
 				// --------------------------------
 
-				geometry.addAttribute( 'position', Float32Array, positions.length, 3 );
-				geometry.attributes.position.array = new Float32Array(positions);
-
-				geometry.addAttribute( 'color', Float32Array, colors.length, 3 );
-				geometry.attributes.color.array = new Float32Array(colors);
-
-				geometry.addAttribute( 'index', Uint16Array, indices_array.length, 1 );
-				geometry.attributes.index.array = new Uint16Array(indices_array);
-				geometry.offsets = [ {start:0, index:0, count:indices_array.length} ];
-
+				geometry.addAttribute( 'index', new Uint16Array( indices_array ), 1 );
+				geometry.addAttribute( 'position', new Float32Array( positions ), 3 );
+				geometry.addAttribute( 'color', new Float32Array( colors ), 3 );
 				geometry.computeBoundingSphere();
 
-				mesh = new THREE.Line( geometry, material, THREE.LinePieces);
+				mesh = new THREE.Line( geometry, material, THREE.LinePieces );
 				mesh.position.x -= 1200;
 				mesh.position.y -= 1200;
 

+ 4 - 4
examples/webgl_buffergeometry_particles.html

@@ -69,11 +69,11 @@
 
 				var geometry = new THREE.BufferGeometry();
 
-				geometry.addAttribute( 'position', Float32Array, particles, 3 );
-				geometry.addAttribute( 'color', Float32Array, particles, 3 );
+				geometry.addAttribute( 'position', new Float32Array( particles * 3 ), 3 );
+				geometry.addAttribute( 'color', new Float32Array( particles * 3 ), 3 );
 
-				var positions = geometry.attributes.position.array;
-				var colors = geometry.attributes.color.array;
+				var positions = geometry.getAttribute( 'position' ).array;
+				var colors = geometry.getAttribute( 'color' ).array;
 
 				var color = new THREE.Color();
 

+ 8 - 9
examples/webgl_buffergeometry_uint.html

@@ -82,13 +82,12 @@
 
 				var geometry = new THREE.BufferGeometry();
 
-				geometry.addAttribute( 'index', Uint32Array, triangles * 3, 1 );
-				geometry.addAttribute( 'position', Float32Array, triangles * 3, 3 );
-				geometry.addAttribute( 'normal', Float32Array, triangles * 3, 3 );
-				geometry.addAttribute( 'color', Float32Array, triangles * 3, 3 );
+				geometry.addAttribute( 'index', new Uint32Array( triangles * 3 ), 1 );
+				geometry.addAttribute( 'position', new Float32Array( triangles * 3 * 3 ), 3 );
+				geometry.addAttribute( 'normal', new Float32Array( triangles * 3 * 3 ), 3 );
+				geometry.addAttribute( 'color', new Float32Array( triangles * 3 * 3 ), 3 );
 
-
-				var indices = geometry.attributes.index.array;
+				var indices = geometry.getAttribute( 'index' ).array;
 
 				for ( var i = 0; i < indices.length; i ++ ) {
 
@@ -96,9 +95,9 @@
 
 				}
 
-				var positions = geometry.attributes.position.array;
-				var normals = geometry.attributes.normal.array;
-				var colors = geometry.attributes.color.array;
+				var positions = geometry.getAttribute( 'position' ).array;
+				var normals = geometry.getAttribute( 'normal' ).array;
+				var colors = geometry.getAttribute( 'color' ).array;
 
 				var color = new THREE.Color();
 

+ 6 - 6
examples/webgl_interactive_buffergeometry.html

@@ -84,13 +84,13 @@
 
 				var geometry = new THREE.BufferGeometry();
 
-				geometry.addAttribute( 'position', Float32Array, triangles * 3, 3 );
-				geometry.addAttribute( 'normal', Float32Array, triangles * 3, 3 );
-				geometry.addAttribute( 'color', Float32Array, triangles * 3, 3 );
+				geometry.addAttribute( 'position', new Float32Array( triangles * 3 * 3 ), 3 );
+				geometry.addAttribute( 'normal', new Float32Array( triangles * 3 * 3 ), 3 );
+				geometry.addAttribute( 'color', new Float32Array( triangles * 3 * 3 ), 3 );
 
-				var positions = geometry.attributes.position.array;
-				var normals = geometry.attributes.normal.array;
-				var colors = geometry.attributes.color.array;
+				var positions = geometry.getAttribute( 'position' ).array;
+				var normals = geometry.getAttribute( 'normal' ).array;
+				var colors = geometry.getAttribute( 'color' ).array;
 
 				var color = new THREE.Color();
 

+ 7 - 3
src/core/Geometry2.js

@@ -6,9 +6,13 @@ THREE.Geometry2 = function ( size ) {
 
 	THREE.BufferGeometry.call( this );
 
-	this.vertices = this.addAttribute( 'position', Float32Array, size, 3 ).array;
-	this.normals = this.addAttribute( 'normal', Float32Array, size, 3 ).array;
-	this.uvs = this.addAttribute( 'uv', Float32Array, size, 2 ).array;
+	this.addAttribute( 'position', new Float32Array( size * 3 ), 3 );
+	this.addAttribute( 'normal', new Float32Array( size * 3 ), 3 );
+	this.addAttribute( 'uv', new Float32Array( size * 2 ), 2 );
+
+	this.vertices = this.getAttribute( 'position' ).array;
+	this.normals = this.getAttribute( 'normal' ).array;
+	this.uvs = this.getAttribute( 'uv' ).array;
 
 	this.boundingBox = null;
 	this.boundingSphere = null;

+ 1 - 1
src/extras/helpers/EdgesHelper.js

@@ -48,7 +48,7 @@ THREE.EdgesHelper = function ( object, hex ) {
 
 	}
 
-	geometry.addAttribute( 'position', Float32Array, 2 * numEdges, 3 );
+	geometry.addAttribute( 'position', new Float32Array( numEdges * 2 * 3 ), 3 );
 
 	var coords = geometry.attributes.position.array;
 

+ 3 - 3
src/extras/helpers/WireframeHelper.js

@@ -46,7 +46,7 @@ THREE.WireframeHelper = function ( object, hex ) {
 
 		}
 
-		geometry.addAttribute( 'position', Float32Array, 2 * numEdges, 3 );
+		geometry.addAttribute( 'position', new Float32Array( numEdges * 2 * 3 ), 3 );
 
 		var coords = geometry.attributes.position.array;
 
@@ -106,7 +106,7 @@ THREE.WireframeHelper = function ( object, hex ) {
 
 		}
 
-		geometry.addAttribute( 'position', Float32Array, 2 * numEdges, 3 );
+		geometry.addAttribute( 'position', new Float32Array( numEdges * 2 * 3 ), 3 );
 
 		var coords = geometry.attributes.position.array;
 
@@ -130,7 +130,7 @@ THREE.WireframeHelper = function ( object, hex ) {
 		var numEdges = vertices.length / 3;
 		var numTris = numEdges / 3;
 
-		geometry.addAttribute( 'position', Float32Array, 2 * numEdges, 3 );
+		geometry.addAttribute( 'position', new Float32Array( numEdges * 2 * 3 ), 3 );
 
 		var coords = geometry.attributes.position.array;
 

+ 2 - 2
src/objects/Sprite.js

@@ -5,8 +5,8 @@
 
 THREE.Sprite = ( function () {
 
-	var geometry = new THREE.Geometry2( 3 );
-	geometry.vertices.set( [ - 0.5, - 0.5, 0, 0.5, - 0.5, 0, 0.5, 0.5, 0 ] );
+	var geometry = new THREE.BufferGeometry();
+	geometry.addAttribute( 'position', new Float32Array( [ - 0.5, - 0.5, 0, 0.5, - 0.5, 0, 0.5, 0.5, 0 ] ), 3 );
 
 	return function ( material ) {