Selaa lähdekoodia

Add reference to materials to OBJ Loader

Daniel Hritzkiv 9 vuotta sitten
vanhempi
commit
13febe3f3d
1 muutettua tiedostoa jossa 23 lisäystä ja 0 poistoa
  1. 23 0
      examples/js/loaders/OBJLoader.js

+ 23 - 0
examples/js/loaders/OBJLoader.js

@@ -5,6 +5,8 @@
 THREE.OBJLoader = function ( manager ) {
 
 	this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
+	
+	this.materials = null;
 
 };
 
@@ -31,6 +33,12 @@ THREE.OBJLoader.prototype = {
 		this.crossOrigin = value;
 
 	},
+	
+	setMaterials: function ( materials ) {
+		
+		this.materials = materials;
+			
+	},
 
 	parse: function ( text ) {
 
@@ -362,6 +370,21 @@ THREE.OBJLoader.prototype = {
 				buffergeometry.addAttribute( 'uv', new THREE.BufferAttribute( new Float32Array( geometry.uvs ), 2 ) );
 
 			}
+			
+			var material;
+			
+			if ( this.materials !== null ) {
+				
+				material = this.materials.create( object.material.name );
+				
+			}
+							
+			if ( !material ) {
+
+				material = new THREE.MeshPhongMaterial();
+				material.name = object.material.name;
+				
+			}
 
 			material = new THREE.MeshLambertMaterial();
 			material.name = object.material.name;