From 21a4db782368c589ba3c6f4766c37974ca321c78 Mon Sep 17 00:00:00 2001 From: skemaikin <62253043+skemaikin@users.noreply.github.com> Date: Sun, 29 Jun 2025 11:17:53 +0200 Subject: [PATCH] serialize roughnessFactor add roughnessFactor for gltf serialization --- src/serializers/GltfSerializer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/serializers/GltfSerializer.cpp b/src/serializers/GltfSerializer.cpp index 8b1c0ec03b..b8487a5fb7 100644 --- a/src/serializers/GltfSerializer.cpp +++ b/src/serializers/GltfSerializer.cpp @@ -106,7 +106,10 @@ int GltfSerializer::writeMaterial(const ifcopenshell::geometry::taxonomy::style: base[3] = 1. - style->transparency; } - json_["materials"].push_back({ {"name", style->name}, {"doubleSided", true}, {"pbrMetallicRoughness", {{"baseColorFactor", base}, {"metallicFactor", 0}}}}); + if (style->has_specularity()) + json_["materials"].push_back({ {"name", style->name}, {"doubleSided", true}, {"pbrMetallicRoughness", {{"baseColorFactor", base}, {"metallicFactor", 0}, {"roughnessFactor", 1.0 / style->specularity}}}}); + else + json_["materials"].push_back({ {"name", style->name}, {"doubleSided", true}, {"pbrMetallicRoughness", {{"baseColorFactor", base}, {"metallicFactor", 0}}}}); if (style->transparency == style->transparency && style->transparency > 1.e-9) { json_["materials"].back()["alphaMode"] = "BLEND";