[Bf-extensions-cvs] [bd8e1f3e] master: glTF exporter: use mesh.loop_triangles
Julien Duroure
noreply at git.blender.org
Tue Jul 21 20:33:17 CEST 2020
Commit: bd8e1f3e576f2a00b957789715762491c7fe765d
Author: Julien Duroure
Date: Tue Jul 21 20:24:03 2020 +0200
Branches: master
https://developer.blender.org/rBAbd8e1f3e576f2a00b957789715762491c7fe765d
glTF exporter: use mesh.loop_triangles
Thanks scurest!
===================================================================
M io_scene_gltf2/__init__.py
M io_scene_gltf2/blender/exp/gltf2_blender_extract.py
===================================================================
diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index 6404fc20..7e64f181 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -15,7 +15,7 @@
bl_info = {
'name': 'glTF 2.0 format',
'author': 'Julien Duroure, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
- "version": (1, 3, 35),
+ "version": (1, 3, 36),
'blender': (2, 90, 0),
'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0',
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_extract.py b/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
index 5fe719ee..704a7b4e 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_extract.py
@@ -17,7 +17,6 @@
#
from mathutils import Vector, Quaternion, Matrix
-from mathutils.geometry import tessellate_polygon
from . import gltf2_blender_export_keys
from ...io.com.gltf2_io_debug import print_console
@@ -232,7 +231,11 @@ def extract_primitives(glTF, blender_mesh, library, blender_object, blender_vert
prims = {}
- for blender_polygon in blender_mesh.polygons:
+ blender_mesh.calc_loop_triangles()
+
+ for loop_tri in blender_mesh.loop_triangles:
+ blender_polygon = blender_mesh.polygons[loop_tri.polygon_index]
+
material_idx = -1
if use_materials:
material_idx = blender_polygon.material_index
@@ -257,28 +260,7 @@ def extract_primitives(glTF, blender_mesh, library, blender_object, blender_vert
face_tangent.normalize()
face_bitangent.normalize()
- loop_index_list = []
-
- if len(blender_polygon.loop_indices) == 3:
- loop_index_list.extend(blender_polygon.loop_indices)
- elif len(blender_polygon.loop_indices) > 3:
- # Triangulation of polygon. Using internal function, as non-convex polygons could exist.
- polyline = []
-
- for loop_index in blender_polygon.loop_indices:
- vertex_index = blender_mesh.loops[loop_index].vertex_index
- v = blender_mesh.vertices[vertex_index].co
- polyline.append(Vector((v[0], v[1], v[2])))
-
- triangles = tessellate_polygon((polyline,))
-
- for triangle in triangles:
- for triangle_index in triangle:
- loop_index_list.append(blender_polygon.loop_indices[triangle_index])
- else:
- continue
-
- for loop_index in loop_index_list:
+ for loop_index in loop_tri.loops:
vertex_index = blender_mesh.loops[loop_index].vertex_index
vertex = blender_mesh.vertices[vertex_index]
More information about the Bf-extensions-cvs
mailing list