From 042fbefac686666190915d206600a5dab8e03066 Mon Sep 17 00:00:00 2001 From: Julien Duroure Date: Thu, 7 Jul 2022 08:03:39 +0200 Subject: glTF importer/exporter: Manage some official Khronos Extensions about Materials KHR_materials_ior KHR_materials_sheen KHR_materials_specular KHR_materials_transmission KHR_materials_variants KHR_materials_emissive_strength KHR_materials_volume Documentation update is still in progress --- .../exp/gltf2_blender_gather_materials_ior.py | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_ior.py (limited to 'io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_ior.py') diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_ior.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_ior.py new file mode 100644 index 00000000..fc219c01 --- /dev/null +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_ior.py @@ -0,0 +1,35 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2018-2022 The glTF-Blender-IO authors. + +from io_scene_gltf2.io.com.gltf2_io_extensions import Extension +from io_scene_gltf2.blender.exp import gltf2_blender_get +from io_scene_gltf2.io.com.gltf2_io_constants import GLTF_IOR + +def export_ior(blender_material, extensions, export_settings): + ior_socket = gltf2_blender_get.get_socket(blender_material, 'IOR') + + if not ior_socket: + return None + + # We don't manage case where socket is linked, always check default value + if ior_socket.is_linked: + # TODOExt: add warning? + return None + + if ior_socket.default_value == GLTF_IOR: + return None + + # Export only if the following extensions are exported: + need_to_export_ior = [ + 'KHR_materials_transmission', + 'KHR_materials_volume', + 'KHR_materials_specular' + ] + + if not any([e in extensions.keys() for e in need_to_export_ior]): + return None + + ior_extension = {} + ior_extension['ior'] = ior_socket.default_value + + return Extension('KHR_materials_ior', ior_extension, False) \ No newline at end of file -- cgit v1.2.3