|
@@ -24,6 +24,7 @@ THREE.OBJLoader = ( function () {
|
|
|
colors: [],
|
|
|
uvs: [],
|
|
|
|
|
|
+ materials: {},
|
|
|
materialLibraries: [],
|
|
|
|
|
|
startObject: function ( name, fromDeclaration ) {
|
|
@@ -679,7 +680,8 @@ THREE.OBJLoader = ( function () {
|
|
|
for ( var mi = 0, miLen = materials.length; mi < miLen; mi ++ ) {
|
|
|
|
|
|
var sourceMaterial = materials[ mi ];
|
|
|
- var material = undefined;
|
|
|
+ var materialHash = sourceMaterial.name + '_' + sourceMaterial.smooth + '_' + hasVertexColors;
|
|
|
+ var material = state.materials[ materialHash ];
|
|
|
|
|
|
if ( this.materials !== null ) {
|
|
|
|
|
@@ -705,7 +707,7 @@ THREE.OBJLoader = ( function () {
|
|
|
|
|
|
}
|
|
|
|
|
|
- if ( ! material ) {
|
|
|
+ if ( material === undefined ) {
|
|
|
|
|
|
if ( isLine ) {
|
|
|
|
|
@@ -722,11 +724,12 @@ THREE.OBJLoader = ( function () {
|
|
|
}
|
|
|
|
|
|
material.name = sourceMaterial.name;
|
|
|
+ material.flatShading = sourceMaterial.smooth ? false : true;
|
|
|
+ material.vertexColors = hasVertexColors ? THREE.VertexColors : THREE.NoColors;
|
|
|
|
|
|
- }
|
|
|
+ state.materials[ materialHash ] = material;
|
|
|
|
|
|
- material.flatShading = sourceMaterial.smooth ? false : true;
|
|
|
- material.vertexColors = hasVertexColors ? THREE.VertexColors : THREE.NoColors;
|
|
|
+ }
|
|
|
|
|
|
createdMaterials.push( material );
|
|
|
|