diff options
author | Maurice Raybaud <mauriceraybaud@hotmail.fr> | 2014-02-28 01:53:01 +0400 |
---|---|---|
committer | Maurice Raybaud <mauriceraybaud@hotmail.fr> | 2014-02-28 01:53:01 +0400 |
commit | 07d031412aa45b04998741f2810bb335ada228f9 (patch) | |
tree | 9ba844847753cadb7c0aeeb58fd2bf23cc3638c6 /render_povray/__init__.py | |
parent | d030a694ef323390861bfff6d2bacdadd41dd484 (diff) |
*added: first implementation of procedural textures
*fixed:packed textures
*fixed:library objects
Diffstat (limited to 'render_povray/__init__.py')
-rw-r--r-- | render_povray/__init__.py | 469 |
1 files changed, 460 insertions, 9 deletions
diff --git a/render_povray/__init__.py b/render_povray/__init__.py index 1aa72f17..15184b67 100644 --- a/render_povray/__init__.py +++ b/render_povray/__init__.py @@ -20,19 +20,17 @@ bl_info = { "name": "POV-Ray 3.7", - "author": "Campbell Barton, Silvio Falcinelli, Maurice Raybaud, " - "Constantin Rahn, Bastien Montagne", + "author": "Campbell Barton, Silvio Falcinelli, Maurice Raybaud, Constantin Rahn, Bastien Montagne", "version": (0, 0, 9), "blender": (2, 57, 0), "location": "Render > Engine > POV-Ray 3.7", "description": "Basic POV-Ray 3.7 integration for blender", - "warning": "both POV-Ray 3.7 and this script are beta", + "warning": "this script is RC", "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/" - "Scripts/Render/POV-Ray", + "Scripts/Render/POV-Ray", "tracker_url": "https://developer.blender.org/T23145", "category": "Render"} - if "bpy" in locals(): import imp imp.reload(ui) @@ -43,6 +41,7 @@ else: import bpy from bpy.types import (AddonPreferences, PropertyGroup, + Operator, ) from bpy.props import (StringProperty, BoolProperty, @@ -56,7 +55,8 @@ else: from . import render from . import update_files - +def string_strip_hyphen(name): + return name.replace("-", "") ############################################################################### # Scene POV properties. @@ -67,6 +67,10 @@ class RenderPovSettingsScene(PropertyGroup): name="Enable Tempfiles", description="Enable the OS-Tempfiles. Otherwise set the path where to save the files", default=True) + pov_editor = BoolProperty( + name="POV-Ray editor", + description="Don't Close POV-Ray editor after rendering (Overriden by /EXIT command)", + default=False) deletefiles_enable = BoolProperty( name="Delete files", description="Delete files after rendering. Doesn't work with the image", @@ -419,7 +423,452 @@ class RenderPovSettingsTexture(PropertyGroup): # "it points at. pigment {} expected", # default="") - + + + tex_pattern_type = EnumProperty( + name="Texture_Type", + description="Choose between Blender or POV-Ray parameters to specify texture", + items= (('agate', 'Agate', '','PLUGIN', 0), ('aoi', 'Aoi', '', 'PLUGIN', 1), + ('average', 'Average', '', 'PLUGIN', 2), ('boxed', 'Boxed', '', 'PLUGIN', 3), + ('bozo', 'Bozo', '', 'PLUGIN', 4), ('bumps', 'Bumps', '', 'PLUGIN', 5), + ('cells', 'Cells', '', 'PLUGIN', 6), ('crackle', 'Crackle', '', 'PLUGIN', 7), + ('cubic', 'Cubic', '', 'PLUGIN', 8), ('cylindrical', 'Cylindrical', '', 'PLUGIN', 9), + ('density_file', 'Density', '(.df3)', 'PLUGIN', 10), + ('dents', 'Dents', '', 'PLUGIN', 11), + ('fractal', 'Fractal', '', 'PLUGIN', 12), + ('function', 'Function', '', 'PLUGIN', 13), + ('gradient', 'Gradient', '', 'PLUGIN', 14), ('granite', 'Granite', '', 'PLUGIN', 15), + ('image_pattern', 'Image pattern', '', 'PLUGIN', 16), + ('leopard', 'Leopard', '', 'PLUGIN', 17), + ('marble', 'Marble', '', 'PLUGIN', 18), ('onion', 'Onion', '', 'PLUGIN', 19), + ('pigment_pattern', 'pigment pattern', '', 'PLUGIN', 20), + ('planar', 'Planar', '', 'PLUGIN', 21), ('quilted', 'Quilted', '', 'PLUGIN', 22), + ('radial', 'Radial', '', 'PLUGIN', 23), ('ripples', 'Ripples', '', 'PLUGIN', 24), + ('slope', 'Slope', '', 'PLUGIN', 25), + ('spherical', 'Spherical', '', 'PLUGIN', 26), ('spiral1', 'Spiral1', '', 'PLUGIN', 27), + ('spiral2', 'Spiral2', '', 'PLUGIN', 28), ('spotted', 'Spotted', '', 'PLUGIN', 29), + ('waves', 'Waves', '', 'PLUGIN', 30), ('wood', 'Wood', '', 'PLUGIN', 31), + ('wrinkles', 'Wrinkles', '', 'PLUGIN', 32), ('brick', "Brick", "", 'PLUGIN', 33), + ('checker', "Checker", "", 'PLUGIN', 34), ('hexagon', "Hexagon", "", 'PLUGIN', 35), + ('object', "Mesh", "", 'PLUGIN', 36), ('emulator', "Internal Emulator", "", 'PLUG', 37)), + default='emulator', + ) + + magnet_style = EnumProperty( + name="Magnet style", + description="magnet or julia", + items=(('mandel', "Mandelbrot", ""),('julia', "Julia", "")), + default='julia') + + magnet_type = IntProperty( + name="Magnet_type", + description="1 or 2", + min=1, max=2, default=2) + + warp_types = EnumProperty( + name="Warp Types", + description="Select the type of warp", + items=(('PLANAR', "Planar", ""), ('CUBIC', "Cubic", ""), ('SPHERICAL', "Spherical", ""), + ('TOROIDAL', "Toroidal", ""), ('CYLINDRICAL', "Cylindrical", ""),('NONE', "None", "No indentation")), + default='NONE') + + warp_orientation = EnumProperty( + name="Warp Orientation", + description="Select the orientation of warp", + items=(('x', "X", ""), ('y', "Y", ""), ('z', "Z", "")), + default='y') + + wave_type = EnumProperty( + name="Waves type", + description="Select the type of waves", + items=(('ramp', "Ramp", ""), ('sine', "Sine", ""), ('scallop', "Scallop", ""), ('cubic', "Cubic", ""), + ('poly', "Poly", ""), ('triangle', 'Triangle', "")), + default='ramp') + + gen_noise = IntProperty( + name="Noise Generators", + description="Noise Generators", + min=1, max=3, default=1) + + warp_dist_exp = FloatProperty( + name="Distance exponent", + description="Distance exponent", + min=0.0, max=100.0, default=1.0) + + warp_tor_major_radius = FloatProperty( + name="Major radius", + description="Torus is distance from major radius", + min=0.0, max=5.0, default=1.0) + + + warp_turbulence_x = FloatProperty( + name="Turbulence X", + description="Turbulence X", + min=0.0, max=5.0, default=0.0) + + warp_turbulence_y = FloatProperty( + name="Turbulence Y", + description="Turbulence Y", + min=0.0, max=5.0, default=0.0) + + warp_turbulence_z = FloatProperty( + name="Turbulence Z", + description="Turbulence Z", + min=0.0, max=5.0, default=0.0) + + modifier_octaves = IntProperty( + name="Turbulence octaves", + description="Turbulence octaves", + min=1, max=10, default=1) + + modifier_lambda = FloatProperty( + name="Turbulence lambda", + description="Turbulence lambda", + min=0.0, max=5.0, default=1.00) + + modifier_omega = FloatProperty( + name="Turbulence omega", + description="Turbulence omega", + min=0.0, max=10.0, default=1.00) + + modifier_phase = FloatProperty( + name="Phase", + description="The phase value causes the map entries to be shifted so that the map starts and ends at a different place.", + min=0.0, max=2.0, default=0.0) + + modifier_frequency = FloatProperty( + name="Frequency", + description="The frequency keyword adjusts the number of times that a color map repeats over one cycle of a pattern.", + min=0.0, max=25.0, default=2.0) + + modifier_turbulence = FloatProperty( + name="Turbulence", + description="Turbulence", + min=0.0, max=5.0, default=2.0) + + modifier_numbers = IntProperty( + name="Numbers", + description="Numbers", + min=1, max=27, default=2) + + modifier_control0 = IntProperty( + name="Control0", + description="Control0", + min=0, max=100, default=1) + + modifier_control1 = IntProperty( + name="Control1", + description="Control1", + min=0, max=100, default=1) + + brick_size_x = FloatProperty( + name="Brick size x", + description="", + min=0.0000, max=1.0000, default=0.2500) + + brick_size_y = FloatProperty( + name="Brick size y", + description="", + min=0.0000, max=1.0000, default=0.0525) + + brick_size_z = FloatProperty( + name="Brick size z", + description="", + min=0.0000, max=1.0000, default=0.1250) + + brick_mortar = FloatProperty( + name="Mortar", + description="Mortar", + min=0.000, max=1.500, default=0.01) + + julia_complex_1 = FloatProperty( + name="Julia Complex 1", + description="", + min=0.000, max=1.500, default=0.360) + + julia_complex_2 = FloatProperty( + name="Julia Complex 2", + description="", + min=0.000, max=1.500, default=0.250) + + f_iter = IntProperty( + name="Fractal Iteration", + description="", + min=0, max=100, default=20) + + f_exponent = IntProperty( + name="Fractal Exponent", + description="", + min=2, max=33, default=2) + + f_ior = IntProperty( + name="Fractal Interior", + description="", + min=1, max=6, default=1) + + f_ior_fac = FloatProperty( + name="Fractal Interior Factor", + description="", + min=0.0, max=10.0, default=1.0) + + f_eor = IntProperty( + name="Fractal Exterior", + description="", + min=1, max=8, default=1) + + f_eor_fac = FloatProperty( + name="Fractal Exterior Factor", + description="", + min=0.0, max=10.0, default=1.0) + + grad_orient_x= IntProperty( + name="Gradient orientation X", + description="", + min=0, max=1, default=0) + + grad_orient_y= IntProperty( + name="Gradient orientation Y", + description="", + min=0, max=1, default=1) + + grad_orient_z= IntProperty( + name="Gradient orientation Z", + description="", + min=0, max=1, default=0) + + pave_sides = EnumProperty( + name="Pavement sides", + description="", + items=(('3', "3", ""), ('4', "4", ""), ('6', "6", "")), + default='3') + + pave_pat_2= IntProperty( + name="Pavement pattern 2", + description="maximum: 2", + min=1, max=2, default=2) + + pave_pat_3= IntProperty( + name="Pavement pattern 3", + description="maximum: 3", + min=1, max=3, default=3) + + pave_pat_4= IntProperty( + name="Pavement pattern 4", + description="maximum: 4", + min=1, max=4, default=4) + + pave_pat_5= IntProperty( + name="Pavement pattern 5", + description="maximum: 5", + min=1, max=5, default=5) + + pave_pat_7= IntProperty( + name="Pavement pattern 7", + description="maximum: 7", + min=1, max=7, default=7) + + pave_pat_12= IntProperty( + name="Pavement pattern 12", + description="maximum: 12", + min=1, max=12, default=12) + + pave_pat_22= IntProperty( + name="Pavement pattern 22", + description="maximum: 22", + min=1, max=22, default=22) + + pave_pat_35= IntProperty( + name="Pavement pattern 35", + description="maximum: 35", + min=1, max=35, default=35) + + pave_tiles= IntProperty( + name="Pavement tiles", + description="If sides = 6, maximum tiles 5!!!", + min=1, max=6, default=1) + + pave_form= IntProperty( + name="Pavement form", + description="", + min=0, max=4, default=0) + + #########FUNCTIONS######################################################################################################################### + #########FUNCTIONS######################################################################################################################### + + func_list = EnumProperty( + name="Functions", + description="Select the function for create pattern", + items=(('NONE', "None", "No indentation"), + ("f_algbr_cyl1","Algbr cyl1",""), ("f_algbr_cyl2","Algbr cyl2",""), + ("f_algbr_cyl3","Algbr cyl3",""), ("f_algbr_cyl4","Algbr cyl4",""), + ("f_bicorn","Bicorn",""), ("f_bifolia","Bifolia",""), + ("f_blob","Blob",""), ("f_blob2","Blob2",""), + ("f_boy_surface","Boy surface",""), ("f_comma","Comma",""), + ("f_cross_ellipsoids","Cross ellipsoids",""), ("f_crossed_trough","Crossed trough",""), + ("f_cubic_saddle","Cubic saddle",""), ("f_cushion","Cushion",""), + ("f_devils_curve","Devils curve",""), ("f_devils_curve_2d","Devils curve 2d",""), + ("f_dupin_cyclid","Dupin cyclid",""), ("f_ellipsoid","Ellipsoid",""), + ("f_enneper","Enneper",""), ("f_flange_cover","Flange cover",""), + ("f_folium_surface","Folium surface",""), ("f_folium_surface_2d","Folium surface 2d",""), + ("f_glob","Glob",""), ("f_heart","Heart",""), + ("f_helical_torus","Helical torus",""), ("f_helix1","Helix1",""), + ("f_helix2","Helix2",""), ("f_hex_x","Hex x",""), + ("f_hex_y","Hex y",""), ("f_hetero_mf","Hetero mf",""), + ("f_hunt_surface","Hunt surface",""), ("f_hyperbolic_torus","Hyperbolic torus",""), + ("f_isect_ellipsoids","Isect ellipsoids",""), ("f_kampyle_of_eudoxus","Kampyle of eudoxus",""), + ("f_kampyle_of_eudoxus_2d","Kampyle of eudoxus 2d",""), ("f_klein_bottle","Klein bottle",""), + ("f_kummer_surface_v1","Kummer surface v1",""), ("f_kummer_surface_v2","Kummer surface v2",""), + ("f_lemniscate_of_gerono","Lemniscate of gerono",""), ("f_lemniscate_of_gerono_2d","Lemniscate of gerono 2d",""), + ("f_mesh1","Mesh1",""), ("f_mitre","Mitre",""), + ("f_nodal_cubic","Nodal cubic",""), ("f_noise3d","Noise3d",""), + ("f_noise_generator","Noise generator",""), ("f_odd","Odd",""), + ("f_ovals_of_cassini","Ovals of cassini",""), ("f_paraboloid","Paraboloid",""), + ("f_parabolic_torus","Parabolic torus",""), ("f_ph","Ph",""), + ("f_pillow","Pillow",""), ("f_piriform","Piriform",""), + ("f_piriform_2d","Piriform 2d",""), ("f_poly4","Poly4",""), + ("f_polytubes","Polytubes",""), ("f_quantum","Quantum",""), + ("f_quartic_paraboloid","Quartic paraboloid",""), ("f_quartic_saddle","Quartic saddle",""), + ("f_quartic_cylinder","Quartic cylinder",""), ("f_r","R",""), + ("f_ridge","Ridge",""), ("f_ridged_mf","Ridged mf",""), + ("f_rounded_box","Rounded box",""), ("f_sphere","Sphere",""), + ("f_spikes","Spikes",""), ("f_spikes_2d","Spikes 2d",""), + ("f_spiral","Spiral",""), ("f_steiners_roman","Steiners roman",""), + ("f_strophoid","Strophoid",""), ("f_strophoid_2d","Strophoid 2d",""), + ("f_superellipsoid","Superellipsoid",""), ("f_th","Th",""), + ("f_torus","Torus",""), ("f_torus2","Torus2",""), + ("f_torus_gumdrop","Torus gumdrop",""), ("f_umbrella","Umbrella",""), + ("f_witch_of_agnesi","Witch of agnesi",""), ("f_witch_of_agnesi_2d","Witch of agnesi 2d","")), + + default='NONE') + + func_x = FloatProperty( + name="FX", + description="", + min=0.0, max=25.0, default=1.0) + + func_plus_x = EnumProperty( + name="Func plus x", + description="", + items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")), + default='NONE') + + func_y = FloatProperty( + name="FY", + description="", + min=0.0, max=25.0, default=1.0) + + func_plus_y = EnumProperty( + name="Func plus y", + description="", + items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")), + default='NONE') + + func_z = FloatProperty( + name="FZ", + description="", + min=0.0, max=25.0, default=1.0) + + func_plus_z = EnumProperty( + name="Func plus z", + description="", + items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")), + default='NONE') + + func_P0 = FloatProperty( + name="P0", + description="", + min=0.0, max=25.0, default=1.0) + + func_P1 = FloatProperty( + name="P1", + description="", + min=0.0, max=25.0, default=1.0) + + func_P2 = FloatProperty( + name="P2", + description="", + min=0.0, max=25.0, default=1.0) + + func_P3 = FloatProperty( + name="P3", + description="", + min=0.0, max=25.0, default=1.0) + + func_P4 = FloatProperty( + name="P4", + description="", + min=0.0, max=25.0, default=1.0) + + func_P5 = FloatProperty( + name="P5", + description="", + min=0.0, max=25.0, default=1.0) + + func_P6 = FloatProperty( + name="P6", + description="", + min=0.0, max=25.0, default=1.0) + + func_P7 = FloatProperty( + name="P7", + description="", + min=0.0, max=25.0, default=1.0) + + func_P8 = FloatProperty( + name="P8", + description="", + min=0.0, max=25.0, default=1.0) + + func_P9 = FloatProperty( + name="P9", + description="", + min=0.0, max=25.0, default=1.0) + + ######################################### + tex_rot_x = FloatProperty( + name="Rotate X", + description="", + min=-180.0, max=180.0, default=0.0) + + tex_rot_y = FloatProperty( + name="Rotate Y", + description="", + min=-180.0, max=180.0, default=0.0) + + tex_rot_z = FloatProperty( + name="Rotate Z", + description="", + min=-180.0, max=180.0, default=0.0) + + tex_mov_x = FloatProperty( + name="Move X", + description="", + min=-100000.0, max=100000.0, default=0.0) + + tex_mov_y = FloatProperty( + name="Move Y", + description="", + min=-100000.0, max=100000.0, default=0.0) + + tex_mov_z = FloatProperty( + name="Move Z", + description="", + min=-100000.0, max=100000.0, default=0.0) + + tex_scale_x = FloatProperty( + name="Scale X", + description="", + min=0.0, max=10000.0, default=1.0) + + tex_scale_y = FloatProperty( + name="Scale Y", + description="", + min=0.0, max=10000.0, default=1.0) + + tex_scale_z = FloatProperty( + name="Scale Z", + description="", + min=0.0, max=10000.0, default=1.0) ############################################################################### # Object POV properties. ############################################################################### @@ -530,10 +979,12 @@ class PovrayPreferences(AddonPreferences): layout = self.layout layout.prop(self, "filepath_povray") + + def register(): bpy.utils.register_module(__name__) - + #bpy.types.TEXTURE_PT_context_texture.prepend(TEXTURE_PT_povray_type) bpy.types.Scene.pov = PointerProperty(type=RenderPovSettingsScene) bpy.types.Material.pov = PointerProperty(type=RenderPovSettingsMaterial) bpy.types.Texture.pov = PointerProperty(type=RenderPovSettingsTexture) @@ -544,7 +995,7 @@ def register(): def unregister(): bpy.utils.unregister_module(__name__) - + #bpy.types.TEXTURE_PT_context_texture.remove(TEXTURE_PT_povray_type) del bpy.types.Scene.pov del bpy.types.Material.pov del bpy.types.Texture.pov |