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

OBJLoader: Avoid creating duplicate materials.

上级 a74cd7f8
......@@ -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 );
......
......@@ -41,6 +41,7 @@ var OBJLoader = ( function () {
colors: [],
uvs: [],
materials: {},
materialLibraries: [],
startObject: function ( name, fromDeclaration ) {
......@@ -696,7 +697,8 @@ var 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 ) {
......@@ -722,7 +724,7 @@ var OBJLoader = ( function () {
}
if ( ! material ) {
if ( material === undefined ) {
if ( isLine ) {
......@@ -739,11 +741,12 @@ var OBJLoader = ( function () {
}
material.name = sourceMaterial.name;
material.flatShading = sourceMaterial.smooth ? false : true;
material.vertexColors = hasVertexColors ? VertexColors : NoColors;
}
state.materials[ materialHash ] = material;
material.flatShading = sourceMaterial.smooth ? false : true;
material.vertexColors = hasVertexColors ? VertexColors : NoColors;
}
createdMaterials.push( material );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册