diff --git a/examples/js/controls/TransformControls.js b/examples/js/controls/TransformControls.js
index 0a97f71c618250..7016935925703f 100644
--- a/examples/js/controls/TransformControls.js
+++ b/examples/js/controls/TransformControls.js
@@ -227,12 +227,8 @@
THREE.TransformGizmo.call( this );
- var arrowGeometry = new THREE.Geometry();
- var mesh = new THREE.Mesh( new THREE.CylinderGeometry( 0, 0.05, 0.2, 12, 1, false ) );
- mesh.position.y = 0.5;
- mesh.updateMatrix();
-
- arrowGeometry.merge( mesh.geometry, mesh.matrix );
+ var arrowGeometry = new THREE.ConeBufferGeometry( 0.05, 0.2, 12, 1, false );
+ arrowGeometry.translate( 0, 0.5, 0 );
var lineXGeometry = new THREE.BufferGeometry();
lineXGeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 1, 0, 0 ], 3 ) );
@@ -505,12 +501,8 @@
THREE.TransformGizmo.call( this );
- var arrowGeometry = new THREE.Geometry();
- var mesh = new THREE.Mesh( new THREE.BoxGeometry( 0.125, 0.125, 0.125 ) );
- mesh.position.y = 0.5;
- mesh.updateMatrix();
-
- arrowGeometry.merge( mesh.geometry, mesh.matrix );
+ var arrowGeometry = new THREE.BoxBufferGeometry( 0.125, 0.125, 0.125 );
+ arrowGeometry.translate( 0, 0.5, 0 );
var lineXGeometry = new THREE.BufferGeometry();
lineXGeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 1, 0, 0 ], 3 ) );
diff --git a/examples/misc_exporter_obj.html b/examples/misc_exporter_obj.html
index e11b1d5528d08a..427fb02d109452 100644
--- a/examples/misc_exporter_obj.html
+++ b/examples/misc_exporter_obj.html
@@ -81,15 +81,15 @@
function addGeometry( type ) {
- for( var i = 0; i < scene.children.length; i++ ) {
+ for( var i = 0; i < scene.children.length; i ++ ) {
- var current = scene.children[ i ];
+ var child = scene.children[ i ];
- if( current instanceof THREE.Mesh ) {
+ if( child.isMesh ) {
- current.geometry.dispose();
- scene.remove( current );
- i--;
+ child.geometry.dispose();
+ scene.remove( child );
+ i --;
}
@@ -98,14 +98,7 @@
if ( type === 1 ) {
var material = new THREE.MeshLambertMaterial( { color : 0x00cc00 } );
-
- var geometry = new THREE.Geometry();
- geometry.vertices.push( new THREE.Vector3( -50, -50, 0 ) );
- geometry.vertices.push( new THREE.Vector3( 50, -50, 0 ) );
- geometry.vertices.push( new THREE.Vector3( 50, 50, 0 ) );
- var face = new THREE.Face3( 0, 1, 2 );
- geometry.faces.push( face );
- geometry.computeFaceNormals();
+ var geometry = generateTriangleGeometry();
scene.add( new THREE.Mesh( geometry, material ) );
@@ -125,14 +118,7 @@
} else if ( type === 4 || type === 5 ) {
var material = new THREE.MeshLambertMaterial( { color : 0x00cc00 } );
-
- var geometry = new THREE.Geometry();
- geometry.vertices.push( new THREE.Vector3( -50, -50, 0 ) );
- geometry.vertices.push( new THREE.Vector3( 50, -50, 0 ) );
- geometry.vertices.push( new THREE.Vector3( 50, 50, 0 ) );
- var face = new THREE.Face3( 0, 1, 2 );
- geometry.faces.push( face );
- geometry.computeFaceNormals();
+ var geometry = generateTriangleGeometry()
var mesh = new THREE.Mesh( geometry, material );
mesh.position.x = -200;
@@ -244,8 +230,8 @@
requestAnimationFrame( animate );
- camera.position.x += ( mouseX - camera.position.x ) * .05;
- camera.position.y += ( -mouseY - camera.position.y ) * .05;
+ camera.position.x += ( mouseX - camera.position.x ) * 0.05;
+ camera.position.y += ( - mouseY - camera.position.y ) * 0.05;
camera.lookAt( scene.position );
light.position.set( camera.position.x, camera.position.y, camera.position.z ).normalize();
@@ -253,6 +239,22 @@
}
+ function generateTriangleGeometry() {
+
+ var geometry = new THREE.BufferGeometry();
+ var vertices = [];
+
+ vertices.push( - 50, - 50, 0 );
+ vertices.push( 50, - 50, 0 );
+ vertices.push( 50, 50, 0 );
+
+ geometry.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
+ geometry.computeVertexNormals();
+
+ return geometry;
+
+ }
+
init();
animate();
diff --git a/examples/webgl_geometry_minecraft.html b/examples/webgl_geometry_minecraft.html
index 5f9eba1647c1ef..07924f66fba56a 100644
--- a/examples/webgl_geometry_minecraft.html
+++ b/examples/webgl_geometry_minecraft.html
@@ -45,6 +45,7 @@
+
@@ -124,13 +125,7 @@
//
- // BufferGeometry cannot be merged yet.
- var tmpGeometry = new THREE.Geometry();
- var pxTmpGeometry = new THREE.Geometry().fromBufferGeometry( pxGeometry );
- var nxTmpGeometry = new THREE.Geometry().fromBufferGeometry( nxGeometry );
- var pyTmpGeometry = new THREE.Geometry().fromBufferGeometry( pyGeometry );
- var pzTmpGeometry = new THREE.Geometry().fromBufferGeometry( pzGeometry );
- var nzTmpGeometry = new THREE.Geometry().fromBufferGeometry( nzGeometry );
+ var geometries = [];
for ( var z = 0; z < worldDepth; z ++ ) {
@@ -149,29 +144,29 @@
var pz = getY( x, z + 1 );
var nz = getY( x, z - 1 );
- tmpGeometry.merge( pyTmpGeometry, matrix );
+ geometries.push( pyGeometry.clone().applyMatrix( matrix ) );
if ( ( px !== h && px !== h + 1 ) || x === 0 ) {
- tmpGeometry.merge( pxTmpGeometry, matrix );
+ geometries.push( pxGeometry.clone().applyMatrix( matrix ) );
}
if ( ( nx !== h && nx !== h + 1 ) || x === worldWidth - 1 ) {
- tmpGeometry.merge( nxTmpGeometry, matrix );
+ geometries.push( nxGeometry.clone().applyMatrix( matrix ) );
}
if ( ( pz !== h && pz !== h + 1 ) || z === worldDepth - 1 ) {
- tmpGeometry.merge( pzTmpGeometry, matrix );
+ geometries.push( pzGeometry.clone().applyMatrix( matrix ) );
}
if ( ( nz !== h && nz !== h + 1 ) || z === 0 ) {
- tmpGeometry.merge( nzTmpGeometry, matrix );
+ geometries.push( nzGeometry.clone().applyMatrix( matrix ) );
}
@@ -179,12 +174,11 @@
}
- var geometry = new THREE.BufferGeometry().fromGeometry( tmpGeometry );
+ var geometry = THREE.BufferGeometryUtils.mergeBufferGeometries( geometries );
geometry.computeBoundingSphere();
var texture = new THREE.TextureLoader().load( 'textures/minecraft/atlas.png' );
texture.magFilter = THREE.NearestFilter;
- texture.minFilter = THREE.LinearMipMapLinearFilter;
var mesh = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { map: texture } ) );
scene.add( mesh );
@@ -196,7 +190,7 @@
directionalLight.position.set( 1, 1, 0.5 ).normalize();
scene.add( directionalLight );
- renderer = new THREE.WebGLRenderer();
+ renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );