Get the unlit / unshaded extension when importing GLTF and set it when exporting
This commit is contained in:
parent
5dccc940e7
commit
e14fa5532b
|
@ -3748,6 +3748,14 @@ Error GLTFDocument::_serialize_materials(Ref<GLTFState> p_state) {
|
||||||
d["alphaMode"] = "BLEND";
|
d["alphaMode"] = "BLEND";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Dictionary extensions;
|
||||||
|
if (base_material->get_shading_mode() == BaseMaterial3D::SHADING_MODE_UNSHADED) {
|
||||||
|
Dictionary mat_unlit;
|
||||||
|
extensions["KHR_materials_unlit"] = mat_unlit;
|
||||||
|
p_state->add_used_extension("KHR_materials_unlit");
|
||||||
|
}
|
||||||
|
d["extensions"] = extensions;
|
||||||
|
|
||||||
materials.push_back(d);
|
materials.push_back(d);
|
||||||
}
|
}
|
||||||
if (!materials.size()) {
|
if (!materials.size()) {
|
||||||
|
@ -3780,6 +3788,11 @@ Error GLTFDocument::_parse_materials(Ref<GLTFState> p_state) {
|
||||||
if (d.has("extensions")) {
|
if (d.has("extensions")) {
|
||||||
pbr_spec_gloss_extensions = d["extensions"];
|
pbr_spec_gloss_extensions = d["extensions"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pbr_spec_gloss_extensions.has("KHR_materials_unlit")) {
|
||||||
|
material->set_shading_mode(BaseMaterial3D::SHADING_MODE_UNSHADED);
|
||||||
|
}
|
||||||
|
|
||||||
if (pbr_spec_gloss_extensions.has("KHR_materials_pbrSpecularGlossiness")) {
|
if (pbr_spec_gloss_extensions.has("KHR_materials_pbrSpecularGlossiness")) {
|
||||||
WARN_PRINT("Material uses a specular and glossiness workflow. Textures will be converted to roughness and metallic workflow, which may not be 100% accurate.");
|
WARN_PRINT("Material uses a specular and glossiness workflow. Textures will be converted to roughness and metallic workflow, which may not be 100% accurate.");
|
||||||
Dictionary sgm = pbr_spec_gloss_extensions["KHR_materials_pbrSpecularGlossiness"];
|
Dictionary sgm = pbr_spec_gloss_extensions["KHR_materials_pbrSpecularGlossiness"];
|
||||||
|
@ -7440,6 +7453,7 @@ Error GLTFDocument::_parse_gltf_extensions(Ref<GLTFState> p_state) {
|
||||||
supported_extensions.insert("KHR_lights_punctual");
|
supported_extensions.insert("KHR_lights_punctual");
|
||||||
supported_extensions.insert("KHR_materials_pbrSpecularGlossiness");
|
supported_extensions.insert("KHR_materials_pbrSpecularGlossiness");
|
||||||
supported_extensions.insert("KHR_texture_transform");
|
supported_extensions.insert("KHR_texture_transform");
|
||||||
|
supported_extensions.insert("KHR_materials_unlit");
|
||||||
for (Ref<GLTFDocumentExtension> ext : document_extensions) {
|
for (Ref<GLTFDocumentExtension> ext : document_extensions) {
|
||||||
ERR_CONTINUE(ext.is_null());
|
ERR_CONTINUE(ext.is_null());
|
||||||
Vector<String> ext_supported_extensions = ext->get_supported_extensions();
|
Vector<String> ext_supported_extensions = ext->get_supported_extensions();
|
||||||
|
|
Loading…
Reference in New Issue