[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1486] trunk/py/scripts/addons/ render_povray/render.py: Speedup for writing on export (vertices, vertex index, vertex colors, vertex normals, UV coords)
Constantin Rahn
conz at vrchannel.de
Sun Jan 23 22:40:53 CET 2011
Revision: 1486
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=1486
Author: conz
Date: 2011-01-23 21:40:51 +0000 (Sun, 23 Jan 2011)
Log Message:
-----------
Speedup for writing on export (vertices, vertex index, vertex colors, vertex normals, UV coords)
Modified Paths:
--------------
trunk/py/scripts/addons/render_povray/render.py
Modified: trunk/py/scripts/addons/render_povray/render.py
===================================================================
--- trunk/py/scripts/addons/render_povray/render.py 2011-01-23 20:39:02 UTC (rev 1485)
+++ trunk/py/scripts/addons/render_povray/render.py 2011-01-23 21:40:51 UTC (rev 1486)
@@ -195,7 +195,7 @@
##############end safety string name material
##############################EndSF###########################
-TabLevel = 0
+tabLevel = 0
def write_pov(filename, scene=None, info_callback=None):
@@ -221,21 +221,21 @@
TabStr = spaces * " "
return TabStr
- Tab = setTab(scene.pov_indentation_character, scene.pov_indentation_spaces)
+ tab = setTab(scene.pov_indentation_character, scene.pov_indentation_spaces)
def tabWrite(str_o):
- global TabLevel
+ global tabLevel
brackets = str_o.count("{") - str_o.count("}") + str_o.count("[") - str_o.count("]")
if brackets < 0:
- TabLevel = TabLevel + brackets
- if TabLevel < 0:
- print("Indentation Warning: TabLevel = %s" % TabLevel)
- TabLevel = 0
- if TabLevel >= 1:
- file.write("%s" % Tab * TabLevel)
+ tabLevel = tabLevel + brackets
+ if tabLevel < 0:
+ print("Indentation Warning: tabLevel = %s" % tabLevel)
+ tabLevel = 0
+ if tabLevel >= 1:
+ file.write("%s" % tab * tabLevel)
file.write(str_o)
if brackets > 0:
- TabLevel = TabLevel + brackets
+ tabLevel = tabLevel + brackets
def uniqueName(name, nameSeq):
@@ -772,9 +772,11 @@
tabWrite("vertex_vectors {\n")
tabWrite("%d" % len(me.vertices)) # vert count
+ tabStr = tab * tabLevel
for v in me.vertices:
file.write(",\n")
- tabWrite("<%.6f, %.6f, %.6f>" % v.co[:]) # vert count
+ file.write(tabStr + "<%.6f, %.6f, %.6f>" % v.co[:]) # vert count
+ #tabWrite("<%.6f, %.6f, %.6f>" % v.co[:]) # vert count
file.write("\n")
tabWrite("}\n")
@@ -794,9 +796,10 @@
tabWrite("normal_vectors {\n")
tabWrite("%d" % len(uniqueNormals)) # vert count
idx = 0
+ tabStr = tab * tabLevel
for no, index in uniqueNormals.items():
file.write(",\n")
- tabWrite("<%.6f, %.6f, %.6f>" % no) # vert count
+ file.write(tabStr + "<%.6f, %.6f, %.6f>" % no) # vert count
index[0] = idx
idx += 1
file.write("\n")
@@ -823,9 +826,10 @@
#print unique_uvs
tabWrite("%d" % len(uniqueUVs)) # vert count
idx = 0
+ tabStr = tab * tabLevel
for uv, index in uniqueUVs.items():
file.write(",\n")
- tabWrite("<%.6f, %.6f>" % uv)
+ file.write(tabStr + "<%.6f, %.6f>" % uv)
index[0] = idx
idx += 1
'''
@@ -873,7 +877,7 @@
# Vert Colours
tabWrite("texture_list {\n")
- tabWrite("%s" % (len(vertCols))) # vert count
+ file.write(tabStr + "%s" % (len(vertCols))) # vert count
idx = 0
for col, index in vertCols.items():
@@ -924,7 +928,7 @@
t_alpha = t
##############################################################################################################
- tabWrite("\n")
+ file.write("\n")
tabWrite("texture {\n") # THIS AREA NEEDS TO LEAVE THE TEXTURE OPEN UNTIL ALL MAPS ARE WRITTEN DOWN. --MR
##############################################################################################################
@@ -1132,6 +1136,8 @@
# Face indices
tabWrite("face_indices {\n")
tabWrite("%d" % (len(me_faces) + quadCount)) # faces count
+ tabStr = tab * tabLevel
+
for fi, f in enumerate(me_faces):
fv = faces_verts[fi]
material_index = f.material_index
@@ -1151,7 +1157,7 @@
if not me_materials or me_materials[material_index] is None: # No materials
for i1, i2, i3 in indices:
file.write(",\n")
- tabWrite("<%d,%d,%d>" % (fv[i1], fv[i2], fv[i3])) # vert count
+ file.write(tabStr + "<%d,%d,%d>" % (fv[i1], fv[i2], fv[i3])) # vert count
else:
material = me_materials[material_index]
for i1, i2, i3 in indices:
@@ -1171,7 +1177,7 @@
ci1 = ci2 = ci3 = vertCols[diffuse_color[0], diffuse_color[1], diffuse_color[2], f.material_index][0]
file.write(",\n")
- tabWrite("<%d,%d,%d>, %d,%d,%d" % (fv[i1], fv[i2], fv[i3], ci1, ci2, ci3)) # vert count
+ file.write(tabStr + "<%d,%d,%d>, %d,%d,%d" % (fv[i1], fv[i2], fv[i3], ci1, ci2, ci3)) # vert count
file.write("\n")
tabWrite("}\n")
@@ -1179,6 +1185,7 @@
# normal_indices indices
tabWrite("normal_indices {\n")
tabWrite("%d" % (len(me_faces) + quadCount)) # faces count
+ tabStr = tab * tabLevel
for fi, fv in enumerate(faces_verts):
if len(fv) == 4:
@@ -1189,14 +1196,14 @@
for i1, i2, i3 in indices:
if me_faces[fi].use_smooth:
file.write(",\n")
- tabWrite("<%d,%d,%d>" %\
+ file.write(tabStr + "<%d,%d,%d>" %\
(uniqueNormals[verts_normals[fv[i1]]][0],\
uniqueNormals[verts_normals[fv[i2]]][0],\
uniqueNormals[verts_normals[fv[i3]]][0])) # vert count
else:
idx = uniqueNormals[faces_normals[fi]][0]
file.write(",\n")
- tabWrite("<%d,%d,%d>" % (idx, idx, idx)) # vert count
+ file.write(tabStr + "<%d,%d,%d>" % (idx, idx, idx)) # vert count
file.write("\n")
tabWrite("}\n")
@@ -1204,6 +1211,7 @@
if uv_layer:
tabWrite("uv_indices {\n")
tabWrite("%d" % (len(me_faces) + quadCount)) # faces count
+ tabStr = tab * tabLevel
for fi, fv in enumerate(faces_verts):
if len(fv) == 4:
@@ -1219,7 +1227,7 @@
for i1, i2, i3 in indices:
file.write(",\n")
- tabWrite("<%d,%d,%d>" % (
+ file.write(tabStr + "<%d,%d,%d>" % (
uniqueUVs[uvs[i1]][0],\
uniqueUVs[uvs[i2]][0],\
uniqueUVs[uvs[i3]][0],
@@ -1800,5 +1808,5 @@
print("***POV FINISHED***")
#time.sleep(self.DELAY)
- if scene.pov_deletefiles_enable:
+ if scene.pov_tempfiles_enable or scene.pov_deletefiles_enable:
self._cleanup()
More information about the Bf-extensions-cvs
mailing list