Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.py35
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