Browse Source

be more tolerant to broken UV links

rdb 14 years ago
parent
commit
43763f0b87
1 changed files with 9 additions and 1 deletions
  1. 9 1
      pandatool/src/daeegg/daeMaterials.cxx

+ 9 - 1
pandatool/src/daeegg/daeMaterials.cxx

@@ -155,7 +155,15 @@ process_texture_bucket(const string semantic, const FCDEffectStandard* effect_co
       const FCDEffectParameterInt* uvset = effect_common->GetTexture(bucket, tx)->GetSet();
       if (uvset != NULL) {
         daeegg_cat.debug() << "Texture has uv name '" << FROM_FSTRING(uvset->GetSemantic()) << "'\n";
-        egg_texture->set_uv_name(FROM_FSTRING(uvset->GetSemantic()));
+        string uvset_semantic (FROM_FSTRING(uvset->GetSemantic()));
+
+        // Only set the UV name if this UV set actually exists.
+        for (int i = 0; i < _materials[semantic]->_uvsets.size(); ++i) {
+          if (_materials[semantic]->_uvsets[i]->_semantic == uvset_semantic) {
+            egg_texture->set_uv_name(uvset_semantic);
+            break;
+          }
+        }
       }
       // Apply sampler stuff
       if (sampler != NULL) {