diff --git a/Source/ThirdParty/GltfPipeline/addPipelineExtras.js b/Source/ThirdParty/GltfPipeline/addPipelineExtras.js index 26770de6b816..5f5dc2b54656 100644 --- a/Source/ThirdParty/GltfPipeline/addPipelineExtras.js +++ b/Source/ThirdParty/GltfPipeline/addPipelineExtras.js @@ -56,6 +56,11 @@ define([ gltf.extras._pipeline = defaultValue(gltf.extras._pipeline, {}); gltf.asset = defaultValue(gltf.asset, {}); gltf.asset.extras = defaultValue(gltf.asset.extras, {}); + if (defined(gltf.asset.extras) && typeof(gltf.asset.extras) !== 'object') { + gltf.asset.extras = { + extras : gltf.asset.extras + }; + } gltf.asset.extras._pipeline = defaultValue(gltf.asset.extras._pipeline, {}); return gltf; } diff --git a/Source/ThirdParty/GltfPipeline/processModelMaterialsCommon.js b/Source/ThirdParty/GltfPipeline/processModelMaterialsCommon.js index 3fe20099f819..9608b4de179d 100644 --- a/Source/ThirdParty/GltfPipeline/processModelMaterialsCommon.js +++ b/Source/ThirdParty/GltfPipeline/processModelMaterialsCommon.js @@ -541,7 +541,8 @@ define([ } else { fragmentLightingBlock += ' vec3 l = vec3(0.0, 0.0, 1.0);\n'; } - fragmentLightingBlock += ' diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal,l), 0.);\n'; + var minimumLighting = optimizeForCesium ? 0.2 : 0.0; + fragmentLightingBlock += ' diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal,l), ' + minimumLighting + ');\n'; if (hasSpecular) { if (lightingModel === 'BLINN') { diff --git a/Source/ThirdParty/GltfPipeline/updateVersion.js b/Source/ThirdParty/GltfPipeline/updateVersion.js index d6d42ea1535b..e357b0e8cf37 100644 --- a/Source/ThirdParty/GltfPipeline/updateVersion.js +++ b/Source/ThirdParty/GltfPipeline/updateVersion.js @@ -225,7 +225,7 @@ define([ var value = object[id]; mapping[id] = array.length; array.push(value); - if (!defined(value.name)) { + if (!defined(value.name) && typeof(value) === 'object') { value.name = id; } } @@ -449,6 +449,7 @@ define([ var target = channel.target; if (defined(target)) { target.node = globalMapping.nodes[target.id]; + delete target.id; } } } @@ -737,7 +738,7 @@ define([ bufferViewsToDelete[oldBufferViewId] = true; } var bufferView = clone(bufferViews[oldBufferViewId]); - var accessorByteStride = getAccessorByteStride(gltf, accessor); + var accessorByteStride = (defined(accessor.byteStride) && accessor.byteStride !== 0) ? accessor.byteStride : getAccessorByteStride(gltf, accessor); if (defined(accessorByteStride)) { bufferView.byteStride = accessorByteStride; if (bufferView.byteStride !== 0) {