未验证 提交 df4fc95b 编写于 作者: M Mr.doob 提交者: GitHub

Merge pull request #13987 from Mugen87/dev4

Examples: Clean up
......@@ -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 ) );
......
......@@ -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();
......
......@@ -45,6 +45,7 @@
<script src="js/controls/FirstPersonControls.js"></script>
<script src="js/BufferGeometryUtils.js"></script>
<script src="js/ImprovedNoise.js"></script>
<script src="js/Detector.js"></script>
<script src="js/libs/stats.min.js"></script>
......@@ -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 );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册