diff options
Diffstat (limited to 'io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_ior.py')
-rw-r--r-- | io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_ior.py | 35 |
1 files changed, 35 insertions, 0 deletions
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 |