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:
authorJulien Duroure <julien.duroure@gmail.com>2019-04-10 22:32:02 +0300
committerJulien Duroure <julien.duroure@gmail.com>2019-04-10 22:32:02 +0300
commitfdbdc7b71242fe2d8aa808dc796092d5eedd10de (patch)
tree210e682f4e684ed7896552e63395c310e37cfe20
parentd23a0d52b1c34429d108cdc54ad33b8a378cdb45 (diff)
glTF exporter: fix some autosmooth normal export
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_extract.py5
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py7
2 files changed, 9 insertions, 3 deletions
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_extract.py b/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
index 84238305..d0347c97 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
@@ -597,7 +597,10 @@ def extract_primitives(glTF, blender_mesh, blender_vertex_groups, modifiers, exp
v = convert_swizzle_location(vertex.co, export_settings)
if blender_polygon.use_smooth:
- n = convert_swizzle_location(vertex.normal, export_settings)
+ if blender_mesh.has_custom_normals:
+ n = convert_swizzle_location(blender_mesh.loops[loop_index].normal, export_settings)
+ else:
+ n = convert_swizzle_location(vertex.normal, export_settings)
if use_tangents:
t = convert_swizzle_tangent(blender_mesh.loops[loop_index].tangent, export_settings)
b = convert_swizzle_location(blender_mesh.loops[loop_index].bitangent, export_settings)
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
index d8169f7f..d3dea8b9 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
@@ -210,11 +210,13 @@ def __gather_mesh(blender_object, export_settings):
if export_settings[gltf2_blender_export_keys.APPLY]:
auto_smooth = blender_object.data.use_auto_smooth
+ edge_split = None
if auto_smooth:
- blender_object = blender_object.copy()
edge_split = blender_object.modifiers.new('Temporary_Auto_Smooth', 'EDGE_SPLIT')
edge_split.split_angle = blender_object.data.auto_smooth_angle
edge_split.use_edge_angle = not blender_object.data.has_custom_normals
+ blender_object.data.use_auto_smooth = False
+ bpy.context.scene.update()
armature_modifiers = {}
if export_settings[gltf2_blender_export_keys.SKINS]:
@@ -233,7 +235,8 @@ def __gather_mesh(blender_object, export_settings):
blender_object.modifiers[idx].show_viewport = show_viewport
if auto_smooth:
- bpy.data.objects.remove(blender_object)
+ blender_object.data.use_auto_smooth = True
+ blender_object.modifiers.remove(edge_split)
else:
blender_mesh = blender_object.data
skip_filter = False