Missing name on collada-imported materials
This commit is contained in:
parent
2af2a84a03
commit
8ffc113b70
3 changed files with 14 additions and 0 deletions
tools
|
@ -378,6 +378,8 @@ void Collada::_parse_material(XMLParser& parser) {
|
||||||
Material material;
|
Material material;
|
||||||
|
|
||||||
String id=parser.get_attribute_value("id");
|
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)) {
|
if (state.version<State::Version(1,4,0)) {
|
||||||
/* <1.4 */
|
/* <1.4 */
|
||||||
|
@ -775,9 +777,12 @@ void Collada::_parse_effect(XMLParser& parser) {
|
||||||
String id=parser.get_attribute_value("id");
|
String id=parser.get_attribute_value("id");
|
||||||
|
|
||||||
Effect effect;
|
Effect effect;
|
||||||
|
if (parser.has_attribute("name"))
|
||||||
|
effect.name=parser.get_attribute_value("name");
|
||||||
_parse_effect_material(parser,effect,id);
|
_parse_effect_material(parser,effect,id);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
state.effect_map[id]=effect;
|
state.effect_map[id]=effect;
|
||||||
|
|
||||||
COLLADA_PRINT("Effect ID:"+id);
|
COLLADA_PRINT("Effect ID:"+id);
|
||||||
|
|
|
@ -53,12 +53,14 @@ public:
|
||||||
|
|
||||||
struct Material {
|
struct Material {
|
||||||
|
|
||||||
|
String name;
|
||||||
String instance_effect;
|
String instance_effect;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct Effect {
|
struct Effect {
|
||||||
|
|
||||||
|
String name;
|
||||||
Map<String, Variant> params;
|
Map<String, Variant> params;
|
||||||
|
|
||||||
struct Channel {
|
struct Channel {
|
||||||
|
|
|
@ -341,6 +341,11 @@ Error ColladaImport::_create_material(const String& p_target) {
|
||||||
|
|
||||||
Ref<FixedMaterial> material= memnew( FixedMaterial );
|
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
|
// DIFFUSE
|
||||||
|
|
||||||
if (effect.diffuse.texture!="") {
|
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_parameter(FixedMaterial::PARAM_SPECULAR_EXP,effect.shininess);
|
||||||
material->set_flag(Material::FLAG_DOUBLE_SIDED,effect.double_sided);
|
material->set_flag(Material::FLAG_DOUBLE_SIDED,effect.double_sided);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
material_cache[p_target]=material;
|
material_cache[p_target]=material;
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue