void to_json()

in src/gltf/properties/MaterialData.cpp [53:71]


void to_json(json& j, const PBRMetallicRoughness& d) {
  j = {};
  if (d.baseColorTexture != nullptr) {
    j["baseColorTexture"] = *d.baseColorTexture;
  }
  if (d.baseColorFactor.LengthSquared() > 0) {
    j["baseColorFactor"] = toStdVec(d.baseColorFactor);
  }
  if (d.metRoughTexture != nullptr) {
    j["metallicRoughnessTexture"] = *d.metRoughTexture;
    // if a texture is provided, throw away metallic/roughness values
    j["roughnessFactor"] = 1.0f;
    j["metallicFactor"] = 1.0f;
  } else {
    // without a texture, however, use metallic/roughness as constants
    j["metallicFactor"] = d.metallic;
    j["roughnessFactor"] = d.roughness;
  }
}