@@ -51,6 +51,7 @@ TF_DEFINE_PRIVATE_TOKENS(
5151 (gltf)
5252 (glb)
5353 (emitMtlx)
54+ (skipValidation)
5455);
5556
5657TF_REGISTRY_FUNCTION (TfType)
@@ -110,6 +111,11 @@ SdfAbstractDataRefPtr UsdGlTFFileFormat::InitData(const FileFormatArguments& arg
110111 {
111112 data->emitMtlx = TfUnstringify<bool >(emitMtlxIt->second );
112113 }
114+ auto skipValidationIt = args.find (_tokens->skipValidation .GetText ());
115+ if (skipValidationIt != args.end ())
116+ {
117+ data->skipValidation = TfUnstringify<bool >(skipValidationIt->second );
118+ }
113119
114120 return data;
115121}
@@ -131,16 +137,18 @@ bool UsdGlTFFileFormat::Read(SdfLayer* layer,
131137 ArDefaultResolverContext ctx ({srcDir.string ()});
132138 ArResolverContextBinder binder (ctx);
133139
140+ SdfAbstractDataRefPtr layerData = InitData (layer->GetFileFormatArguments ());
141+ UsdGlTFDataConstPtr data = TfDynamic_cast<const UsdGlTFDataConstPtr>(layerData);
142+
143+ bool validateGltf = !data->skipValidation ;
144+
134145 cgltf_data* gltf_data = nullptr ;
135- if (!load_gltf (resolvedPath.c_str (), &gltf_data))
146+ if (!load_gltf (resolvedPath.c_str (), &gltf_data, validateGltf ))
136147 {
137148 TF_RUNTIME_ERROR (" unable to load glTF file %s" , resolvedPath.c_str ());
138149 return false ;
139150 }
140151
141- SdfAbstractDataRefPtr layerData = InitData (layer->GetFileFormatArguments ());
142- UsdGlTFDataConstPtr data = TfDynamic_cast<const UsdGlTFDataConstPtr>(layerData);
143-
144152 Converter::Params params = {};
145153 params.srcDir = srcDir;
146154 params.dstDir = s_tmpDirHolder.makeDir ();
@@ -208,10 +216,15 @@ void UsdGlTFFileFormat::ComposeFieldsForFileFormatArguments(const std::string& a
208216 FileFormatArguments* args,
209217 VtValue *dependencyContextData) const
210218{
211- VtValue emitMtlxValue;
212- if (context.ComposeValue (_tokens->emitMtlx , &emitMtlxValue))
219+ VtValue emitMtlx;
220+ if (context.ComposeValue (_tokens->emitMtlx , &emitMtlx))
221+ {
222+ (*args)[_tokens->emitMtlx ] = TfStringify (emitMtlx);
223+ }
224+ VtValue skipValidation;
225+ if (context.ComposeValue (_tokens->skipValidation , &skipValidation))
213226 {
214- (*args)[_tokens->emitMtlx ] = TfStringify (emitMtlxValue );
227+ (*args)[_tokens->skipValidation ] = TfStringify (skipValidation );
215228 }
216229}
217230
0 commit comments