From 52ab356cec585844f7a6b68c135a10c2604687c7 Mon Sep 17 00:00:00 2001 From: Mugen87 Date: Fri, 4 May 2018 10:16:01 +0200 Subject: [PATCH] Examples: Clean up --- examples/js/controls/TransformControls.js | 16 ++------ examples/misc_exporter_obj.html | 50 ++++++++++++----------- examples/webgl_geometry_minecraft.html | 24 ++++------- 3 files changed, 39 insertions(+), 51 deletions(-) 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 );