Missing name on collada-imported materials

This commit is contained in:
Juan Linietsky 2014-06-28 09:50:20 -03:00
parent 2af2a84a03
commit 8ffc113b70
3 changed files with 14 additions and 0 deletions

View file

@ -378,6 +378,8 @@ void Collada::_parse_material(XMLParser& parser) {
Material material;
String id=parser.get_attribute_value("id");
if (parser.has_attribute("name"))
material.name=parser.get_attribute_value("name");
if (state.version<State::Version(1,4,0)) {
/* <1.4 */
@ -775,9 +777,12 @@ void Collada::_parse_effect(XMLParser& parser) {
String id=parser.get_attribute_value("id");
Effect effect;
if (parser.has_attribute("name"))
effect.name=parser.get_attribute_value("name");
_parse_effect_material(parser,effect,id);
state.effect_map[id]=effect;
COLLADA_PRINT("Effect ID:"+id);

View file

@ -53,12 +53,14 @@ public:
struct Material {
String name;
String instance_effect;
};
struct Effect {
String name;
Map<String, Variant> params;
struct Channel {

View file

@ -341,6 +341,11 @@ Error ColladaImport::_create_material(const String& p_target) {
Ref<FixedMaterial> material= memnew( FixedMaterial );
if (src_mat.name!="")
material->set_name(src_mat.name);
else if (effect.name!="")
material->set_name(effect.name);
// DIFFUSE
if (effect.diffuse.texture!="") {
@ -425,6 +430,8 @@ Error ColladaImport::_create_material(const String& p_target) {
material->set_parameter(FixedMaterial::PARAM_SPECULAR_EXP,effect.shininess);
material->set_flag(Material::FLAG_DOUBLE_SIDED,effect.double_sided);
material_cache[p_target]=material;
return OK;
}