[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1283] trunk/py/scripts/addons/ render_povray: Added elementary Baking
Maurice Raybaud
mauriceraybaud at hotmail.fr
Thu Dec 16 21:33:46 CET 2010
Revision: 1283
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=1283
Author: mauriceraybaud
Date: 2010-12-16 21:33:45 +0100 (Thu, 16 Dec 2010)
Log Message:
-----------
Added elementary Baking
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 2010-12-16 15:18:03 UTC (rev 1282)
+++ trunk/py/scripts/addons/render_povray/__init__.py 2010-12-16 20:33:45 UTC (rev 1283)
@@ -54,6 +54,10 @@
name="Advanced Options",
description="Show advanced options",
default=False)
+ Scene.pov_baking_enable = BoolProperty(
+ name="Enable Baking",
+ description="Enable povrays texture baking",
+ default=False)
# Real pov options
Scene.pov_radio_adc_bailout = FloatProperty(
@@ -186,7 +190,7 @@
def unregister():
import bpy
Scene = bpy.types.Scene
- Mat = bpy.types.Material#MR
+ Mat = bpy.types.Material # MR
del Scene.pov_radio_enable
del Scene.pov_radio_display_advanced
del Scene.pov_radio_adc_bailout
@@ -201,20 +205,21 @@
del Scene.pov_radio_nearest_count
del Scene.pov_radio_normal
del Scene.pov_radio_recursion_limit
- del Mat.pov_irid_enable#MR
- del Mat.pov_mirror_use_IOR#MR
- del Mat.pov_mirror_metallic#MR
- del Mat.pov_conserve_energy#MR
- del Mat.pov_irid_amount#MR
- del Mat.pov_irid_thickness#MR
- del Mat.pov_irid_turbulence#MR
- del Mat.pov_caustics_enable#MR
- del Mat.pov_fake_caustics#MR
- del Mat.pov_fake_caustics_power#MR
- del Mat.pov_photons_refraction#MR
- del Mat.pov_photons_dispersion#MR
- del Mat.pov_photons_reflection#MR
- del Mat.pov_refraction_type#MR
+ del Scene.pov_baking_enable # MR
+ del Mat.pov_irid_enable # MR
+ del Mat.pov_mirror_use_IOR # MR
+ del Mat.pov_mirror_metallic # MR
+ del Mat.pov_conserve_energy # MR
+ del Mat.pov_irid_amount # MR
+ del Mat.pov_irid_thickness # MR
+ del Mat.pov_irid_turbulence # MR
+ del Mat.pov_caustics_enable # MR
+ del Mat.pov_fake_caustics # MR
+ del Mat.pov_fake_caustics_power # MR
+ del Mat.pov_photons_refraction # MR
+ del Mat.pov_photons_dispersion # MR
+ del Mat.pov_photons_reflection # MR
+ del Mat.pov_refraction_type # MR
if __name__ == "__main__":
register()
Modified: trunk/py/scripts/addons/render_povray/render.py
===================================================================
--- trunk/py/scripts/addons/render_povray/render.py 2010-12-16 15:18:03 UTC (rev 1282)
+++ trunk/py/scripts/addons/render_povray/render.py 2010-12-16 20:33:45 UTC (rev 1283)
@@ -377,6 +377,7 @@
def exportCamera():
camera = scene.camera
+ active_object = bpy.context.active_object # MR
matrix = camera.matrix_world
focal_point = camera.data.dof_distance
@@ -386,19 +387,27 @@
file.write('#declare camLookAt = <%.6f, %.6f, %.6f>;\n' % tuple([degrees(e) for e in matrix.rotation_part().to_euler()]))
file.write('camera {\n')
- file.write('\tlocation <0, 0, 0>\n')
- file.write('\tlook_at <0, 0, -1>\n')
- file.write('\tright <%s, 0, 0>\n' % - Qsize)
- file.write('\tup <0, 1, 0>\n')
- file.write('\tangle %f \n' % (360.0 * atan(16.0 / camera.data.lens) / pi))
+ if scene.pov_baking_enable and active_object.type=='MESH':
+ file.write('\tmesh_camera{ 1 3\n') # distribution 3 is what we want here
+ file.write('\t\tmesh{%s}\n' % active_object.name)
+ file.write('\t}\n')
+ file.write('location <0,0,.01>')
+ file.write('direction <0,0,-1>')
+ # Using standard camera otherwise
+ else:
+ file.write('\tlocation <0, 0, 0>\n')
+ file.write('\tlook_at <0, 0, -1>\n')
+ file.write('\tright <%s, 0, 0>\n' % - Qsize)
+ file.write('\tup <0, 1, 0>\n')
+ file.write('\tangle %f \n' % (360.0 * atan(16.0 / camera.data.lens) / pi))
- file.write('\trotate <%.6f, %.6f, %.6f>\n' % tuple([degrees(e) for e in matrix.rotation_part().to_euler()]))
- file.write('\ttranslate <%.6f, %.6f, %.6f>\n' % (matrix[3][0], matrix[3][1], matrix[3][2]))
- if focal_point != 0:
- file.write('\taperture 0.25\n') # fixed blur amount for now to do, add slider a button?
- file.write('\tblur_samples 96 128\n')
- file.write('\tvariance 1/10000\n')
- file.write('\tfocal_point <0, 0, %f>\n' % focal_point)
+ file.write('\trotate <%.6f, %.6f, %.6f>\n' % tuple([degrees(e) for e in matrix.rotation_part().to_euler()]))
+ file.write('\ttranslate <%.6f, %.6f, %.6f>\n' % (matrix[3][0], matrix[3][1], matrix[3][2]))
+ if focal_point != 0:
+ file.write('\taperture 0.25\n') # fixed blur amount for now to do, add slider a button?
+ file.write('\tblur_samples 96 128\n')
+ file.write('\tvariance 1/10000\n')
+ file.write('\tfocal_point <0, 0, %f>\n' % focal_point)
file.write('}\n')
def exportLamps(lamps):
@@ -608,6 +617,8 @@
# quads incur an extra face
quadCount = sum(1 for f in faces_verts if len(f) == 4)
+ # Use named declaration to allow reference e.g. for baking. MR
+ file.write('#declare %s=\n' % ob.name)
file.write('mesh2 {\n')
file.write('\tvertex_vectors {\n')
file.write('\t\t%s' % (len(me.vertices))) # vert count
@@ -1027,6 +1038,7 @@
writeMatrix(matrix)
file.write('}\n')
+ file.write('%s\n' % ob.name) # Use named declaration to allow reference e.g. for baking. MR
bpy.data.meshes.remove(me)
@@ -1165,12 +1177,13 @@
for material in bpy.data.materials:
writeMaterial(material)
- exportCamera()
+
#exportMaterials()
sel = scene.objects
exportLamps([l for l in sel if l.type == 'LAMP'])
exportMeta([l for l in sel if l.type == 'META'])
exportMeshs(scene, sel)
+ exportCamera()
exportWorld(scene.world)
exportGlobalSettings(scene)
Modified: trunk/py/scripts/addons/render_povray/ui.py
===================================================================
--- trunk/py/scripts/addons/render_povray/ui.py 2010-12-16 15:18:03 UTC (rev 1282)
+++ trunk/py/scripts/addons/render_povray/ui.py 2010-12-16 20:33:45 UTC (rev 1283)
@@ -288,3 +288,20 @@
col = split.column()
col.prop(scene, "pov_radio_always_sample")
+
+class RENDER_PT_povray_baking(RenderButtonsPanel, bpy.types.Panel):
+ bl_label = "Baking"
+ COMPAT_ENGINES = {'POVRAY_RENDER'}
+
+ def draw_header(self, context):
+ scene = context.scene
+
+ self.layout.prop(scene, "pov_baking_enable", text="")
+
+ def draw(self, context):
+ layout = self.layout
+
+ scene = context.scene
+ rd = scene.render
+
+ layout.active = scene.pov_baking_enable
More information about the Bf-extensions-cvs
mailing list