From 4dc7b473d9b85e84bf9bc67143857d2c311e1fd9 Mon Sep 17 00:00:00 2001 From: Constantin Rahn <conz@vrchannel.de> Date: Tue, 18 Jan 2011 21:18:27 +0000 Subject: [PATCH] Speedup1: Storing faces in me_faces --- render_povray/render.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/render_povray/render.py b/render_povray/render.py index 3dc508e1d..12d59eced 100644 --- a/render_povray/render.py +++ b/render_povray/render.py @@ -667,10 +667,11 @@ def write_pov(filename, scene=None, info_callback=None): me = ob.data importance=ob.pov_importance_value me_materials = me.materials + me_faces = me.faces[:] me = ob.create_mesh(scene, True, 'RENDER') - if not me or not me.faces: + if not me or not me_faces: continue if info_callback: @@ -691,8 +692,8 @@ def write_pov(filename, scene=None, info_callback=None): except AttributeError: vcol_layer = None - faces_verts = [f.vertices[:] for f in me.faces] - faces_normals = [tuple(f.normal) for f in me.faces] + faces_verts = [f.vertices[:] for f in me_faces] + faces_normals = [tuple(f.normal) for f in me_faces] verts_normals = [tuple(v.normal) for v in me.vertices] # quads incur an extra face @@ -714,7 +715,7 @@ def write_pov(filename, scene=None, info_callback=None): # Build unique Normal list uniqueNormals = {} - for fi, f in enumerate(me.faces): + for fi, f in enumerate(me_faces): fv = faces_verts[fi] # [-1] is a dummy index, use a list so we can modify in place if f.use_smooth: # Use vertex normals @@ -775,7 +776,7 @@ def write_pov(filename, scene=None, info_callback=None): if me.vertex_colors: - for fi, f in enumerate(me.faces): + for fi, f in enumerate(me_faces): material_index = f.material_index material = me_materials[material_index] @@ -1057,8 +1058,8 @@ def write_pov(filename, scene=None, info_callback=None): # Face indices tabWrite('face_indices {\n') - tabWrite('%d' % (len(me.faces) + quadCount)) # faces count - for fi, f in enumerate(me.faces): + tabWrite('%d' % (len(me_faces) + quadCount)) # faces count + for fi, f in enumerate(me_faces): fv = faces_verts[fi] material_index = f.material_index if len(fv) == 4: @@ -1106,7 +1107,7 @@ def write_pov(filename, scene=None, info_callback=None): # normal_indices indices tabWrite('normal_indices {\n') - tabWrite('%d' % (len(me.faces) + quadCount)) # faces count + tabWrite('%d' % (len(me_faces) + quadCount)) # faces count for fi, fv in enumerate(faces_verts): if len(fv) == 4: @@ -1115,7 +1116,7 @@ def write_pov(filename, scene=None, info_callback=None): indices = ((0, 1, 2),) for i1, i2, i3 in indices: - if me.faces[fi].use_smooth: + if me_faces[fi].use_smooth: file.write(',\n') tabWrite('<%d,%d,%d>' %\ (uniqueNormals[verts_normals[fv[i1]]][0],\ @@ -1131,7 +1132,7 @@ def write_pov(filename, scene=None, info_callback=None): if uv_layer: tabWrite('uv_indices {\n') - tabWrite('%d' % (len(me.faces) + quadCount)) # faces count + tabWrite('%d' % (len(me_faces) + quadCount)) # faces count for fi, fv in enumerate(faces_verts): if len(fv) == 4: -- GitLab