[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2069] trunk/py/scripts/addons/ io_scene_x3d/export_x3d.py: fix [#27773] X3D export with Triangulate= on sometimes doesn't share vertexes correctly
Campbell Barton
ideasman42 at gmail.com
Mon Jun 27 15:28:55 CEST 2011
Revision: 2069
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2069
Author: campbellbarton
Date: 2011-06-27 13:28:55 +0000 (Mon, 27 Jun 2011)
Log Message:
-----------
fix [#27773] X3D export with Triangulate=on sometimes doesn't share vertexes correctly
Modified Paths:
--------------
trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
Modified: trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
===================================================================
--- trunk/py/scripts/addons/io_scene_x3d/export_x3d.py 2011-06-27 08:20:29 UTC (rev 2068)
+++ trunk/py/scripts/addons/io_scene_x3d/export_x3d.py 2011-06-27 13:28:55 UTC (rev 2069)
@@ -487,6 +487,10 @@
is_smooth = True
break
+ # UV's and VCols split verts off which effects smoothing
+ # force writing normals in this case.
+ is_force_normals = use_triangulate and is_smooth and (is_uv or is_col)
+
if use_h3d:
gpu_shader = gpu_shader_cache.get(material) # material can be 'None', uses dummy cache
if gpu_shader is None:
@@ -558,10 +562,10 @@
# --- Write IndexedTriangleSet Attributes (same as IndexedFaceSet)
fw('solid="%s"\n' % ('true' if mesh.show_double_sided else 'false'))
- if is_smooth:
- fw(ident_step + 'creaseAngle="%.4g"\n' % mesh.auto_smooth_angle)
+
+ # creaseAngle unsupported for IndexedTriangleSet's
- if use_normals:
+ if use_normals or is_force_normals:
# currently not optional, could be made so:
fw(ident_step + 'normalPerVertex="true"\n')
@@ -649,7 +653,7 @@
fw('%.6g %.6g %.6g ' % mesh_vertices[x3d_v[1]].co[:])
fw('" />\n')
- if use_normals:
+ if use_normals or is_force_normals:
fw('%s<Normal ' % ident)
fw('vector="')
for x3d_v in vert_tri_list:
More information about the Bf-extensions-cvs
mailing list