[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1489] trunk/py/scripts/addons/ render_povray: Optimized export to OS Tempfiles.
Constantin Rahn
conz at vrchannel.de
Mon Jan 24 12:44:02 CET 2011
Revision: 1489
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=1489
Author: conz
Date: 2011-01-24 11:44:01 +0000 (Mon, 24 Jan 2011)
Log Message:
-----------
Optimized export to OS Tempfiles.
The output to Tempfiles no longer exports comments, indentations or LFs (in lists).
New option in Export settings to deactivate LF (line brakes) in lists.
Fixed a material export for normal maps. Was exported two times.
Paths to images are now realpaths, no /../ in absolut paths.
Modified Paths:
--------------
trunk/py/scripts/addons/render_povray/__init__.py
trunk/py/scripts/addons/render_povray/render.py
trunk/py/scripts/addons/render_povray/ui.py
Modified: trunk/py/scripts/addons/render_povray/__init__.py
===================================================================
--- trunk/py/scripts/addons/render_povray/__init__.py 2011-01-24 08:22:49 UTC (rev 1488)
+++ trunk/py/scripts/addons/render_povray/__init__.py 2011-01-24 11:44:01 UTC (rev 1489)
@@ -70,6 +70,10 @@
name="Rendered image path",
description="Full path to directory where the rendered image is saved.",
default="", maxlen=1024, subtype="DIR_PATH")
+ Scene.pov_list_lf_enable = BoolProperty(
+ name="LF in lists",
+ description="Enable line brakes in lists (vectors and indices). Disabled: lists are exported in one line.",
+ default=True)
# Not a real pov option, just to know if we should write
Scene.pov_radio_enable = BoolProperty(
@@ -318,6 +322,7 @@
del Scene.pov_deletefiles_enable # CR
del Scene.pov_scene_path # CR
del Scene.pov_renderimage_path # CR
+ del Scene.pov_list_lf_enable # CR
del Scene.pov_radio_enable
del Scene.pov_radio_display_advanced
del Scene.pov_radio_adc_bailout
Modified: trunk/py/scripts/addons/render_povray/render.py
===================================================================
--- trunk/py/scripts/addons/render_povray/render.py 2011-01-24 08:22:49 UTC (rev 1488)
+++ trunk/py/scripts/addons/render_povray/render.py 2011-01-24 11:44:01 UTC (rev 1489)
@@ -157,6 +157,7 @@
fn_strip = os.path.basename(fn)
if not os.path.isfile(fn):
fn = findInSubDir(splitFile(fn), splitPath(bpy.data.filepath))
+ fn = os.path.realpath(fn)
return fn
##############end find image texture
@@ -224,18 +225,21 @@
tab = setTab(scene.pov_indentation_character, scene.pov_indentation_spaces)
def tabWrite(str_o):
- 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)
- file.write(str_o)
- if brackets > 0:
- tabLevel = tabLevel + brackets
+ if not scene.pov_tempfiles_enable:
+ 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)
+ file.write(str_o)
+ if brackets > 0:
+ tabLevel = tabLevel + brackets
+ else:
+ file.write(str_o)
def uniqueName(name, nameSeq):
@@ -332,19 +336,19 @@
def povHasnoSpecularMaps(Level):
if Level == 1:
tabWrite("#declare %s = finish {" % safety(name, Level=1))
- if comments:
+ if not scene.pov_tempfiles_enable and comments:
file.write(" //No specular nor Mirror reflection\n")
else:
tabWrite("\n")
elif Level == 2:
tabWrite("#declare %s = finish {" % safety(name, Level=2))
- if comments:
+ if not scene.pov_tempfiles_enable and comments:
file.write(" //translation of spec and mir levels for when no map influences them\n")
else:
tabWrite("\n")
elif Level == 3:
tabWrite("#declare %s = finish {" % safety(name, Level=3))
- if comments:
+ if not scene.pov_tempfiles_enable and comments:
file.write(" //Maximum Spec and Mirror\n")
else:
tabWrite("\n")
@@ -638,7 +642,7 @@
# TODO - blenders 'motherball' naming is not supported.
- if scene.pov_comments_enable and len(metas) >= 1:
+ if not scene.pov_tempfiles_enable and scene.pov_comments_enable and len(metas) >= 1:
file.write("//--Blob objects--\n\n")
for ob in metas:
@@ -704,7 +708,7 @@
tabWrite("}\n") # End of Metaball block
- if scene.pov_comments_enable and len(metas) >= 1:
+ if not scene.pov_tempfiles_enable and scene.pov_comments_enable and len(metas) >= 1:
file.write("\n")
objectNames = {}
@@ -774,8 +778,12 @@
tabStr = tab * tabLevel
for v in me.vertices:
- file.write(",\n")
- file.write(tabStr + "<%.6f, %.6f, %.6f>" % v.co[:]) # vert count
+ if not scene.pov_tempfiles_enable and scene.pov_list_lf_enable:
+ file.write(",\n")
+ file.write(tabStr + "<%.6f, %.6f, %.6f>" % v.co[:]) # vert count
+ else:
+ file.write(", ")
+ file.write("<%.6f, %.6f, %.6f>" % v.co[:]) # vert count
#tabWrite("<%.6f, %.6f, %.6f>" % v.co[:]) # vert count
file.write("\n")
tabWrite("}\n")
@@ -798,8 +806,12 @@
idx = 0
tabStr = tab * tabLevel
for no, index in uniqueNormals.items():
- file.write(",\n")
- file.write(tabStr + "<%.6f, %.6f, %.6f>" % no) # vert count
+ if not scene.pov_tempfiles_enable and scene.pov_list_lf_enable:
+ file.write(",\n")
+ file.write(tabStr + "<%.6f, %.6f, %.6f>" % no) # vert count
+ else:
+ file.write(", ")
+ file.write("<%.6f, %.6f, %.6f>" % no) # vert count
index[0] = idx
idx += 1
file.write("\n")
@@ -828,8 +840,12 @@
idx = 0
tabStr = tab * tabLevel
for uv, index in uniqueUVs.items():
- file.write(",\n")
- file.write(tabStr + "<%.6f, %.6f>" % uv)
+ if not scene.pov_tempfiles_enable and scene.pov_list_lf_enable:
+ file.write(",\n")
+ file.write(tabStr + "<%.6f, %.6f>" % uv)
+ else:
+ file.write(", ")
+ file.write("<%.6f, %.6f>" % uv)
index[0] = idx
idx += 1
'''
@@ -976,7 +992,7 @@
# continue # Some texture found
#if special_texture_found:
- if texturesSpec != "" or texturesAlpha != "" or texturesNorm != "":
+ if texturesSpec != "" or texturesAlpha != "":
if texturesSpec != "":
# tabWrite("\n")
tabWrite("pigment_pattern {\n")
@@ -1156,8 +1172,12 @@
if not me_materials or me_materials[material_index] is None: # No materials
for i1, i2, i3 in indices:
- file.write(",\n")
- file.write(tabStr + "<%d,%d,%d>" % (fv[i1], fv[i2], fv[i3])) # vert count
+ if not scene.pov_tempfiles_enable and scene.pov_list_lf_enable:
+ file.write(",\n")
+ file.write(tabStr + "<%d,%d,%d>" % (fv[i1], fv[i2], fv[i3])) # vert count
+ else:
+ file.write(", ")
+ file.write("<%d,%d,%d>" % (fv[i1], fv[i2], fv[i3])) # vert count
else:
material = me_materials[material_index]
for i1, i2, i3 in indices:
@@ -1176,8 +1196,12 @@
diffuse_color = material.diffuse_color
ci1 = ci2 = ci3 = vertCols[diffuse_color[0], diffuse_color[1], diffuse_color[2], f.material_index][0]
- file.write(",\n")
- file.write(tabStr + "<%d,%d,%d>, %d,%d,%d" % (fv[i1], fv[i2], fv[i3], ci1, ci2, ci3)) # vert count
+ if not scene.pov_tempfiles_enable and scene.pov_list_lf_enable:
+ file.write(",\n")
+ file.write(tabStr + "<%d,%d,%d>, %d,%d,%d" % (fv[i1], fv[i2], fv[i3], ci1, ci2, ci3)) # vert count
+ else:
+ file.write(", ")
+ file.write("<%d,%d,%d>, %d,%d,%d" % (fv[i1], fv[i2], fv[i3], ci1, ci2, ci3)) # vert count
file.write("\n")
tabWrite("}\n")
@@ -1195,15 +1219,26 @@
for i1, i2, i3 in indices:
if me_faces[fi].use_smooth:
- file.write(",\n")
- 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
+ if not scene.pov_tempfiles_enable and scene.pov_list_lf_enable:
+ file.write(",\n")
+ 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:
+ file.write(", ")
+ file.write("<%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")
- file.write(tabStr + "<%d,%d,%d>" % (idx, idx, idx)) # vert count
+ if not scene.pov_tempfiles_enable and scene.pov_list_lf_enable:
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list