diff --git a/examples/js/loaders/ColladaLoader.js b/examples/js/loaders/ColladaLoader.js index 48711a1633999cbcbafe91e551ffd2ef03197f32..dedd817e528f1fe86a4570d71df695b0342d2ad0 100644 --- a/examples/js/loaders/ColladaLoader.js +++ b/examples/js/loaders/ColladaLoader.js @@ -1189,10 +1189,15 @@ THREE.ColladaLoader.prototype = { case 'diffuse': case 'specular': case 'shininess': - case 'transparent': case 'transparency': data[ child.nodeName ] = parseEffectParameter( child ); break; + case 'transparent': + data[ child.nodeName ] = { + opaque: child.getAttribute( 'opaque' ), + data: parseEffectParameters( child ) + }; + break; } @@ -1471,11 +1476,24 @@ THREE.ColladaLoader.prototype = { material.emissive.fromArray( parameter.color ); break; case 'transparent': - // if ( parameter.texture ) material.alphaMap = getTexture( parameter.texture ); + // if ( parameter.data.texture ) material.alphaMap = getTexture( parameter.data.texture ); material.transparent = true; break; case 'transparency': - if ( parameter.float !== undefined ) material.opacity = parameter.float; + if ( parameter.float !== undefined ) { + + material.opacity = parameter.float; + + if ( parameters[ 'transparent' ] !== undefined ) { + + var opaque = parameters[ 'transparent' ].opaque; + + if ( opaque === 'RGB_ZERO' ) material.opacity = 1 - material.opacity; + + } + + } + material.transparent = true; break;