From 30c07bc98cd66b201e807ae9ed81fd34f6bc979f Mon Sep 17 00:00:00 2001 From: camnewnham Date: Thu, 22 Jul 2021 22:50:38 +1000 Subject: [PATCH] FBXLoader: Check null textures before assignment (#22114) * FBXLoader: Check null textures before assignment FBXLoader: Check null textures before assignment Use !== FBXLoader: don't assign maps if images are missing * Update FBXLoader.js Clean up code style. Co-authored-by: Michael Herzog --- examples/jsm/loaders/FBXLoader.js | 40 +++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/examples/jsm/loaders/FBXLoader.js b/examples/jsm/loaders/FBXLoader.js index abc3fd89b1..b4e60fd97f 100644 --- a/examples/jsm/loaders/FBXLoader.js +++ b/examples/jsm/loaders/FBXLoader.js @@ -620,7 +620,11 @@ class FBXTreeParser { case 'DiffuseColor': case 'Maya|TEX_color_map': parameters.map = scope.getTexture( textureMap, child.ID ); - parameters.map.encoding = sRGBEncoding; + if ( parameters.map !== undefined ) { + + parameters.map.encoding = sRGBEncoding; + + } break; case 'DisplacementColor': @@ -629,9 +633,13 @@ class FBXTreeParser { case 'EmissiveColor': parameters.emissiveMap = scope.getTexture( textureMap, child.ID ); - parameters.emissiveMap.encoding = sRGBEncoding; - break; + if ( parameters.emissiveMap !== undefined ) { + + parameters.emissiveMap.encoding = sRGBEncoding; + } + break; + case 'NormalMap': case 'Maya|TEX_normal_map': parameters.normalMap = scope.getTexture( textureMap, child.ID ); @@ -639,13 +647,21 @@ class FBXTreeParser { case 'ReflectionColor': parameters.envMap = scope.getTexture( textureMap, child.ID ); - parameters.envMap.mapping = EquirectangularReflectionMapping; - parameters.envMap.encoding = sRGBEncoding; + if ( parameters.envMap !== undefined ) { + + parameters.envMap.mapping = EquirectangularReflectionMapping; + parameters.envMap.encoding = sRGBEncoding; + + } break; case 'SpecularColor': parameters.specularMap = scope.getTexture( textureMap, child.ID ); - parameters.specularMap.encoding = sRGBEncoding; + if ( parameters.specularMap !== undefined ) { + + parameters.specularMap.encoding = sRGBEncoding; + + } break; case 'TransparentColor': @@ -681,7 +697,17 @@ class FBXTreeParser { } - return textureMap.get( id ); + const texture = textureMap.get( id ); + + if ( texture.image !== undefined ) { + + return texture; + + } else { + + return undefined; + + } } -- GitLab