提交 2922ff6a 编写于 作者: M Mr.doob

Updated some examples to the new MeshFaceMaterial usage.

上级 d4e37c78
...@@ -3947,9 +3947,8 @@ THREE.Projector = function() { ...@@ -3947,9 +3947,8 @@ THREE.Projector = function() {
this.projectScene = function ( scene, camera, sortObjects, sortElements ) { this.projectScene = function ( scene, camera, sortObjects, sortElements ) {
var near = camera.near, far = camera.far, visible = false, var near = camera.near, far = camera.far, visible = false,
o, ol, v, vl, f, fl, n, nl, c, cl, u, ul, object, o, ol, v, vl, f, fl, n, nl, c, cl, u, ul, object, modelMatrix,
modelMatrix, geometry, vertices, vertex, vertexPositionScreen,
geometry, geometryMaterials, vertices, vertex, vertexPositionScreen,
faces, face, faceVertexNormals, normal, faceVertexUvs, uvs, faces, face, faceVertexNormals, normal, faceVertexUvs, uvs,
v1, v2, v3, v4, isFaceMaterial, material, side; v1, v2, v3, v4, isFaceMaterial, material, side;
...@@ -3992,7 +3991,6 @@ THREE.Projector = function() { ...@@ -3992,7 +3991,6 @@ THREE.Projector = function() {
_normalMatrix.transpose(); _normalMatrix.transpose();
isFaceMaterial = object.material instanceof THREE.MeshFaceMaterial; isFaceMaterial = object.material instanceof THREE.MeshFaceMaterial;
geometryMaterials = ( isFaceMaterial && object.material.materials.length > 0 ) ? object.material.materials : object.geometry.materials;
side = object.material.side; side = object.material.side;
...@@ -4017,7 +4015,7 @@ THREE.Projector = function() { ...@@ -4017,7 +4015,7 @@ THREE.Projector = function() {
face = faces[ f ]; face = faces[ f ];
material = isFaceMaterial === true ? geometryMaterials[ face.materialIndex ] : object.material; material = isFaceMaterial === true ? object.material.materials[ face.materialIndex ] : object.material;
if ( material === undefined ) continue; if ( material === undefined ) continue;
......
此差异已折叠。
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
]; ];
mesh = new THREE.Mesh( new THREE.CubeGeometry( 300, 300, 300, 7, 7, 7, materials ), new THREE.MeshFaceMaterial() ); mesh = new THREE.Mesh( new THREE.CubeGeometry( 300, 300, 300, 7, 7, 7 ), new THREE.MeshFaceMaterial( materials ) );
mesh.scale.x = - 1; mesh.scale.x = - 1;
scene.add( mesh ); scene.add( mesh );
......
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
]; ];
mesh = new THREE.Mesh( new THREE.CubeGeometry( 300, 300, 300, 7, 7, 7, materials ), new THREE.MeshFaceMaterial() ); mesh = new THREE.Mesh( new THREE.CubeGeometry( 300, 300, 300, 7, 7, 7 ), new THREE.MeshFaceMaterial( materials ) );
mesh.scale.x = - 1; mesh.scale.x = - 1;
scene.add( mesh ); scene.add( mesh );
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
var geometry = new THREE.SphereGeometry( 100, 14, 7, false ); var geometry = new THREE.SphereGeometry( 100, 14, 7, false );
geometry.materials = [ var materials = [
new THREE.MeshBasicMaterial( { color: 0x00ffff, wireframe: true, side: THREE.DoubleSide } ), new THREE.MeshBasicMaterial( { color: 0x00ffff, wireframe: true, side: THREE.DoubleSide } ),
new THREE.MeshBasicMaterial( { color: 0xff0000, blending: THREE.AdditiveBlending, side: THREE.DoubleSide } ), new THREE.MeshBasicMaterial( { color: 0xff0000, blending: THREE.AdditiveBlending, side: THREE.DoubleSide } ),
...@@ -81,17 +81,17 @@ ...@@ -81,17 +81,17 @@
for ( var i = 0, l = geometry.faces.length; i < l; i ++ ) { for ( var i = 0, l = geometry.faces.length; i < l; i ++ ) {
var face = geometry.faces[ i ]; var face = geometry.faces[ i ];
if ( Math.random() > 0.5 ) face.materialIndex = Math.floor( Math.random() * geometry.materials.length ); if ( Math.random() > 0.5 ) face.materialIndex = Math.floor( Math.random() * materials.length );
} }
geometry.materials.push( new THREE.MeshFaceMaterial() ); materials.push( new THREE.MeshFaceMaterial( materials ) );
objects = []; objects = [];
for ( var i = 0, l = geometry.materials.length; i < l; i ++ ) { for ( var i = 0, l = materials.length; i < l; i ++ ) {
var sphere = new THREE.Mesh( geometry, geometry.materials[ i ] ); var sphere = new THREE.Mesh( geometry, materials[ i ] );
sphere.position.x = ( i % 5 ) * 200 - 400; sphere.position.x = ( i % 5 ) * 200 - 400;
sphere.position.z = Math.floor( i / 5 ) * 200 - 200; sphere.position.z = Math.floor( i / 5 ) * 200 - 200;
......
...@@ -96,6 +96,7 @@ ...@@ -96,6 +96,7 @@
// POLYFIELD // POLYFIELD
var geometry = new THREE.Geometry(); var geometry = new THREE.Geometry();
var materials = [];
for ( var i = 0; i < 100; i ++ ) { for ( var i = 0; i < 100; i ++ ) {
...@@ -109,12 +110,12 @@ ...@@ -109,12 +110,12 @@
v1.addSelf( v ); v1.addSelf( v );
v2.addSelf( v ); v2.addSelf( v );
var face = new THREE.Face3( geometry.vertices.push( v0 ) - 1, geometry.vertices.push( v1 ) - 1, geometry.vertices.push( v2 ) - 1, null, null, geometry.materials.length ); var face = new THREE.Face3( geometry.vertices.push( v0 ) - 1, geometry.vertices.push( v1 ) - 1, geometry.vertices.push( v2 ) - 1, null, null, i );
geometry.materials.push( new THREE.MeshBasicMaterial( { color: Math.random() * 0xffffff, side: THREE.DoubleSide } ) );
geometry.faces.push( face ); geometry.faces.push( face );
materials.push( new THREE.MeshBasicMaterial( { color: Math.random() * 0xffffff, side: THREE.DoubleSide } ) );
} }
geometry.computeFaceNormals(); geometry.computeFaceNormals();
...@@ -124,7 +125,7 @@ ...@@ -124,7 +125,7 @@
group.scale.x = group.scale.y = group.scale.z = 2; group.scale.x = group.scale.y = group.scale.z = 2;
scene.add( group ); scene.add( group );
mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial() ); mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
group.add( mesh ); group.add( mesh );
// LIGHTS // LIGHTS
......
...@@ -96,22 +96,13 @@ ...@@ -96,22 +96,13 @@
for ( var i = 0, l = geometry_pieces.faces.length; i < l; i ++ ) { for ( var i = 0, l = geometry_pieces.faces.length; i < l; i ++ ) {
var face = geometry_pieces.faces[ i ]; var face = geometry_pieces.faces[ i ];
face.materialIndex = Math.floor( Math.random() * materials.length );
if ( Math.random() > 0.7 ) {
face.materialIndex = Math.floor( Math.random() * materials.length );
} else {
face.materialIndex = 0;
}
} }
geometry_pieces.materials = materials; geometry_pieces.materials = materials;
materials.push( new THREE.MeshFaceMaterial() ); materials.push( new THREE.MeshFaceMaterial( materials ) );
objects = []; objects = [];
......
...@@ -97,11 +97,7 @@ ...@@ -97,11 +97,7 @@
new THREE.MeshLambertMaterial( { color: 0xdddddd, shading: THREE.FlatShading } ), new THREE.MeshLambertMaterial( { color: 0xdddddd, shading: THREE.FlatShading } ),
new THREE.MeshLambertMaterial( { color: 0xdddddd, shading: THREE.SmoothShading } ), new THREE.MeshLambertMaterial( { color: 0xdddddd, shading: THREE.SmoothShading } ),
new THREE.MeshPhongMaterial( { ambient: 0x030303, color: 0xdddddd, specular: 0x009900, shininess: 30, shading: THREE.FlatShading } ), new THREE.MeshPhongMaterial( { ambient: 0x030303, color: 0xdddddd, specular: 0x009900, shininess: 30, shading: THREE.FlatShading } ),
new THREE.MeshPhongMaterial( { ambient: 0x030303, color: 0xdddddd, specular: 0x009900, shininess: 30, shading: THREE.SmoothShading } ), new THREE.MeshPhongMaterial( { ambient: 0x030303, color: 0xdddddd, specular: 0x009900, shininess: 30, shading: THREE.SmoothShading } )
/*
new THREE.MeshBasicMaterial( { map: texture2, envMap: THREE.ImageUtils.loadTexture( 'textures/envmap.png', new THREE.SphericalReflectionMapping() ) } ),
new THREE.MeshLambertMaterial( { map: texture2, envMap: THREE.ImageUtils.loadTexture( 'textures/envmap.png', new THREE.SphericalReflectionMapping() ) } ),
*/
]; ];
...@@ -114,17 +110,6 @@ ...@@ -114,17 +110,6 @@
} }
/*
for ( var i = 0, l = geometry.faces.length; i < l; i ++ ) {
var face = geometry.faces[ i ];
face.materialIndex = Math.floor( Math.random() * materials.length );
}
*/
//materials.push( new THREE.MeshFaceMaterial() );
for ( var i = 0; i < 5000; i ++ ) { for ( var i = 0; i < 5000; i ++ ) {
// random order // random order
......
...@@ -171,9 +171,8 @@ THREE.Projector = function() { ...@@ -171,9 +171,8 @@ THREE.Projector = function() {
this.projectScene = function ( scene, camera, sortObjects, sortElements ) { this.projectScene = function ( scene, camera, sortObjects, sortElements ) {
var near = camera.near, far = camera.far, visible = false, var near = camera.near, far = camera.far, visible = false,
o, ol, v, vl, f, fl, n, nl, c, cl, u, ul, object, o, ol, v, vl, f, fl, n, nl, c, cl, u, ul, object, modelMatrix,
modelMatrix, geometry, vertices, vertex, vertexPositionScreen,
geometry, geometryMaterials, vertices, vertex, vertexPositionScreen,
faces, face, faceVertexNormals, normal, faceVertexUvs, uvs, faces, face, faceVertexNormals, normal, faceVertexUvs, uvs,
v1, v2, v3, v4, isFaceMaterial, material, side; v1, v2, v3, v4, isFaceMaterial, material, side;
...@@ -216,7 +215,6 @@ THREE.Projector = function() { ...@@ -216,7 +215,6 @@ THREE.Projector = function() {
_normalMatrix.transpose(); _normalMatrix.transpose();
isFaceMaterial = object.material instanceof THREE.MeshFaceMaterial; isFaceMaterial = object.material instanceof THREE.MeshFaceMaterial;
geometryMaterials = ( isFaceMaterial && object.material.materials.length > 0 ) ? object.material.materials : object.geometry.materials;
side = object.material.side; side = object.material.side;
...@@ -241,7 +239,7 @@ THREE.Projector = function() { ...@@ -241,7 +239,7 @@ THREE.Projector = function() {
face = faces[ f ]; face = faces[ f ];
material = isFaceMaterial === true ? geometryMaterials[ face.materialIndex ] : object.material; material = isFaceMaterial === true ? object.material.materials[ face.materialIndex ] : object.material;
if ( material === undefined ) continue; if ( material === undefined ) continue;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册