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

Updated some examples to the new MeshFaceMaterial usage.

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