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

gltf2_blender_gather_materials_ior.py « exp « blender « io_scene_gltf2 - git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: fc219c01074ef602b5121b678a939e1bc00f69b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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)