Skip to content

Commit

Permalink
Implement KHR_materials_unlit with user extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
Juan Jose Casafranca committed Oct 11, 2019
1 parent 1f7720a commit 03664e0
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,6 @@ def __gather_extensions(blender_material, export_settings):
extension_wrapper = GLTF2ExtensionMaterials(blender_material)
extensions = export_user_extensions(extension_wrapper, export_settings)

if bpy.app.version < (2, 80, 0):
if blender_material.use_shadeless:
extensions["KHR_materials_unlit"] = Extension("KHR_materials_unlit", {}, False)
else:
if gltf2_blender_get.get_socket_or_texture_slot(blender_material, "Background") is not None:
extensions["KHR_materials_unlit"] = Extension("KHR_materials_unlit", {}, False)

# TODO specular glossiness extension

return extensions if extensions else None
Expand Down
65 changes: 65 additions & 0 deletions addons/io_scene_gltf2/io/exp/extensions/KHR_materials_unlit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import bpy
from io_scene_gltf2.io.com.gltf2_io_extensions import Extension
from io_scene_gltf2.io.exp.gltf2_io_user_extensions import UserExtensionBase
from io_scene_gltf2.blender.exp import gltf2_blender_get
from io_scene_gltf2.io.exp.gltf2_io_user_extensions import GLTF2ExtensionMaterials

class GLTF_PT_export_KHR_materials_unlit(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "KHR_materials_unlit"
bl_parent_id = "GLTF_PT_export_user_extensions"
bl_options = {'DEFAULT_CLOSED'}

@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
if operator.is_draco_available:
return operator.bl_idname == "EXPORT_SCENE_OT_gltf"

def draw_header(self, context):
sfile = context.space_data
operator = sfile.active_operator
self.layout.prop(operator, "export_KHR_materials_unlit_enabled", text="")

def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.

class KHR_materials_unlit(UserExtensionBase):
meta = {
'name': 'KHR_materials_unlit',
'isDraft': False,
'enable': True,
'url': (
'https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit'
)
}

enabled = bpy.props.BoolProperty(
name='KHR_materials_unlit_enabled',
description='Enable/disable this extension',
default=True
)

def export(self, extension_wrapper, export_settings):

extension = None
if isinstance(extension_wrapper, GLTF2ExtensionMaterials):
blender_material = extension_wrapper.blender_material
if bpy.app.version < (2, 80, 0):
if blender_material.use_shadeless:
extension = Extension("KHR_materials_unlit", {}, False)
else:
if gltf2_blender_get.get_socket_or_texture_slot(blender_material, "Background") is not None:
extension = Extension("KHR_materials_unlit", {}, False)
return extension

def register_extension(self):
bpy.utils.register_class(GLTF_PT_export_KHR_materials_unlit)

def properties(self):
return {"enabled": self.enabled}

0 comments on commit 03664e0

Please sign in to comment.