[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