glTF exporter: fix some autosmooth normal export
This commit is contained in:
parent
d23a0d52b1
commit
fdbdc7b712
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue