From 01b01209a3ec3da4df17b03d401560bb664772c6 Mon Sep 17 00:00:00 2001 From: Rodolfo Ribeiro Gomes Date: Wed, 20 Jun 2018 23:44:08 -0300 Subject: [PATCH] fix default glTF metallic & roughness factor values The glTF 2.0 spec says that these pbrMetallicRoughness material properties should be set as 1.0 by default. In fact, KhronosGroup's official Blender Exporter does not even write down those parameters if they are set as 1.0. However, Godot import them as 0.0. https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#pbrmetallicroughness Fixes: #19613 https://github.com/godotengine/godot/issues/19613 --- editor/import/editor_scene_importer_gltf.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp index 07a4cf5884c..777f757bb45 100644 --- a/editor/import/editor_scene_importer_gltf.cpp +++ b/editor/import/editor_scene_importer_gltf.cpp @@ -1256,12 +1256,15 @@ Error EditorSceneImporterGLTF::_parse_materials(GLTFState &state) { } if (mr.has("metallicFactor")) { - material->set_metallic(mr["metallicFactor"]); + } else { + material->set_metallic(1.0); } - if (mr.has("roughnessFactor")) { + if (mr.has("roughnessFactor")) { material->set_roughness(mr["roughnessFactor"]); + } else { + material->set_roughness(1.0); } if (mr.has("metallicRoughnessTexture")) {