From 56dfa8c8b4395e2af66c10d43812d66ed1fb6162 Mon Sep 17 00:00:00 2001 From: Maurice Raybaud Date: Sun, 8 Dec 2019 21:41:58 +0100 Subject: POV: added doc strings Hoping it will help the code to be less repulsive to new developers. --- render_povray/__init__.py | 4730 ++++++++++++++++++++++++----------------- render_povray/primitives.py | 6 +- render_povray/render.py | 26 +- render_povray/shading.py | 24 +- render_povray/ui.py | 130 +- render_povray/update_files.py | 2 +- 6 files changed, 2840 insertions(+), 2078 deletions(-) (limited to 'render_povray') diff --git a/render_povray/__init__.py b/render_povray/__init__.py index f343db66..66d42104 100644 --- a/render_povray/__init__.py +++ b/render_povray/__init__.py @@ -21,42 +21,42 @@ """Import, export and render to POV engines. These engines can be POV-Ray or Uberpov but others too, since POV is a -Scene Description Language. The script has been split in as few files +Scene Description Language. The script has been split in as few files as possible : ___init__.py : Initialize variables - + update_files.py - Update new variables to values from older API. This file needs an update. - + Update new variables to values from older API. This file needs an update. + ui.py : Provide property buttons for the user to set up the variables. - + primitives.py : Display some POV native primitives in 3D view for input and output. shading.py - Translate shading properties to declared textures at the top of a pov file + Translate shading properties to declared textures at the top of a pov file nodes.py Translate node trees to the pov file - + df3.py Render smoke to *.df3 files - + render.py : Translate geometry and UI properties (Blender and POV native) to the POV file - + Along these essential files also coexist a few additional libraries to help make Blender stand up to other POV IDEs such as povwin or QTPOV. presets : Material (sss) - apple.py ; chicken.py ; cream.py ; Ketchup.py ; marble.py ; + apple.py ; chicken.py ; cream.py ; Ketchup.py ; marble.py ; potato.py ; skim_milk.py ; skin1.py ; skin2.py ; whole_milk.py Radiosity - 01_Debug.py ; 02_Fast.py ; 03_Normal.py ; 04_Two_Bounces.py ; + 01_Debug.py ; 02_Fast.py ; 03_Normal.py ; 04_Two_Bounces.py ; 05_Final.py ; 06_Outdoor_Low_Quality.py ; 07_Outdoor_High_Quality.py ; 08_Outdoor(Sun)Light.py ; 09_Indoor_Low_Quality.py ; 10_Indoor_High_Quality.py ; @@ -73,13 +73,13 @@ Blender stand up to other POV IDEs such as povwin or QTPOV. 10_(4300K)_40W_Vintage_Fluorescent_T12.py ; 11_(5000K)_18W_Standard_Fluorescent_T8 ; 12_(4200K)_18W_Cool_White_Fluorescent_T8.py ; - 13_(3000K)_18W_Warm_Fluorescent_T8.py ; + 13_(3000K)_18W_Warm_Fluorescent_T8.py ; 14_(6500K)_54W_Grow_Light_Fluorescent_T5-HO.py ; 15_(3200K)_40W_Induction_Fluorescent.py ; 16_(2100K)_150W_High_Pressure_Sodium.py ; 17_(1700K)_135W_Low_Pressure_Sodium.py ; 18_(6800K)_175W_Mercury_Vapor.py ; 19_(5200K)_700W_Carbon_Arc.py ; - 20_(6500K)_15W_LED_Spot.py ; 21_(2700K)_7W_OLED_Panel.py ; + 20_(6500K)_15W_LED_Spot.py ; 21_(2700K)_7W_OLED_Panel.py ; 22_(30000K)_40W_Black_Light_Fluorescent.py ; 23_(30000K)_40W_Black_Light_Bulb.py; 24_(1850K)_Candle.py templates: @@ -93,22 +93,22 @@ Blender stand up to other POV IDEs such as povwin or QTPOV. bl_info = { "name": "Persistence of Vision", "author": "Campbell Barton, " - "Maurice Raybaud, " - "Leonid Desyatkov, " - "Bastien Montagne, " - "Constantin Rahn, " - "Silvio Falcinelli", + "Maurice Raybaud, " + "Leonid Desyatkov, " + "Bastien Montagne, " + "Constantin Rahn, " + "Silvio Falcinelli", "version": (0, 1, 0), "blender": (2, 81, 0), "location": "Render Properties > Render Engine > Persistence of Vision", "description": "Persistence of Vision integration for blender", - "wiki_url": "https://docs.blender.org/manual/en/dev/addons/" - "render/povray.html", + "wiki_url": "https://docs.blender.org/manual/en/dev/addons/render/povray.html", "category": "Render", } if "bpy" in locals(): import importlib + importlib.reload(ui) importlib.reload(render) importlib.reload(shading) @@ -117,36 +117,30 @@ if "bpy" in locals(): else: import bpy from bpy.utils import register_class, unregister_class - #import addon_utils # To use some other addons - import nodeitems_utils #for Nodes - from nodeitems_utils import NodeCategory, NodeItem #for Nodes + # import addon_utils # To use some other addons + import nodeitems_utils # for Nodes + from nodeitems_utils import NodeCategory, NodeItem # for Nodes from bl_operators.presets import AddPresetBase - from bpy.types import ( - AddonPreferences, - PropertyGroup, - #Operator, - ) + from bpy.types import AddonPreferences, PropertyGroup from bpy.props import ( - StringProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - EnumProperty, - PointerProperty, - CollectionProperty, - ) - from . import ( - ui, - render, - update_files, - ) + StringProperty, + BoolProperty, + IntProperty, + FloatProperty, + FloatVectorProperty, + EnumProperty, + PointerProperty, + CollectionProperty, + ) + from . import ui, render, update_files + def string_strip_hyphen(name): """Remove hyphen characters from a string to avoid POV errors.""" return name.replace("-", "") -def active_texture_name_from_uilist(self,context): + +def active_texture_name_from_uilist(self, context): mat = context.scene.view_layers["View Layer"].objects.active.active_material index = mat.pov.active_texture_index name = mat.pov_texture_slots[index].name @@ -156,7 +150,7 @@ def active_texture_name_from_uilist(self,context): mat.pov_texture_slots[index].name = newname -def active_texture_name_from_search(self,context): +def active_texture_name_from_search(self, context): mat = context.scene.view_layers["View Layer"].objects.active.active_material index = mat.pov.active_texture_index name = mat.pov_texture_slots[index].texture_search @@ -167,1373 +161,1734 @@ def active_texture_name_from_search(self,context): except: pass + ############################################################################### # Scene POV properties. ############################################################################### class RenderPovSettingsScene(PropertyGroup): """Declare scene level properties controllable in UI and translated to POV.""" - #Linux SDL-window enable + + # Linux SDL-window enable sdl_window_enable: BoolProperty( - name="Enable SDL window", - description="Enable the SDL window in Linux OS", - default=True) + name="Enable SDL window", + description="Enable the SDL window in Linux OS", + default=True, + ) # File Options text_block: StringProperty( - name="Text Scene Name", - description="Name of POV scene to use. " - "Set when clicking Run to render current text only", - maxlen=1024) + name="Text Scene Name", + description="Name of POV scene to use. " + "Set when clicking Run to render current text only", + maxlen=1024, + ) tempfiles_enable: BoolProperty( - name="Enable Tempfiles", - description="Enable the OS-Tempfiles. Otherwise set the path where" - " to save the files", - default=True) + name="Enable Tempfiles", + description="Enable the OS-Tempfiles. Otherwise set the path where" + " to save the files", + default=True, + ) pov_editor: BoolProperty( - name="POV editor", - description="Don't Close POV editor after rendering (Overridden" - " by /EXIT command)", - default=False) + name="POV editor", + description="Don't Close POV editor after rendering (Overridden" + " by /EXIT command)", + default=False, + ) deletefiles_enable: BoolProperty( - name="Delete files", - description="Delete files after rendering. " - "Doesn't work with the image", - default=True) + name="Delete files", + description="Delete files after rendering. " + "Doesn't work with the image", + default=True, + ) scene_name: StringProperty( - name="Scene Name", - description="Name of POV scene to create. Empty name will use " - "the name of the blend file", - maxlen=1024) + name="Scene Name", + description="Name of POV scene to create. Empty name will use " + "the name of the blend file", + maxlen=1024, + ) scene_path: StringProperty( - name="Export scene path", - # Bug in POV-Ray RC3 - # description="Path to directory where the exported scene " - # "(POV and INI) is created", - description="Path to directory where the files are created", - maxlen=1024, subtype="DIR_PATH") + name="Export scene path", + # Bug in POV-Ray RC3 + # description="Path to directory where the exported scene " + # "(POV and INI) is created", + description="Path to directory where the files are created", + maxlen=1024, + subtype="DIR_PATH", + ) renderimage_path: StringProperty( - name="Rendered image path", - description="Full path to directory where the rendered image is " - "saved", - maxlen=1024, subtype="DIR_PATH") + name="Rendered image path", + description="Full path to directory where the rendered image is " + "saved", + maxlen=1024, + subtype="DIR_PATH", + ) list_lf_enable: BoolProperty( - name="LF in lists", - description="Enable line breaks in lists (vectors and indices). " - "Disabled: lists are exported in one line", - default=True) + name="LF in lists", + description="Enable line breaks 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 radio_enable: BoolProperty( - name="Enable Radiosity", - description="Enable POV radiosity calculation", - default=True) + name="Enable Radiosity", + description="Enable POV radiosity calculation", + default=True, + ) radio_display_advanced: BoolProperty( - name="Advanced Options", - description="Show advanced options", - default=False) + name="Advanced Options", + description="Show advanced options", + default=False, + ) media_enable: BoolProperty( - name="Enable Media", - description="Enable POV atmospheric media", - default=False) + name="Enable Media", + description="Enable POV atmospheric media", + default=False, + ) media_samples: IntProperty( - name="Samples", - description="Number of samples taken from camera to first object " - "encountered along ray path for media calculation", - min=1, max=100, default=35) + name="Samples", + description="Number of samples taken from camera to first object " + "encountered along ray path for media calculation", + min=1, + max=100, + default=35, + ) media_scattering_type: EnumProperty( - name="Scattering Type", - description="Scattering model", - items=(('1', "1 Isotropic", "The simplest form of scattering because" - " it is independent of direction."), - ('2', "2 Mie haze ", "For relatively small particles such as " - "minuscule water droplets of fog, cloud " - "particles, and particles responsible " - "for the polluted sky. In this model the" - " scattering is extremely directional in" - " the forward direction i.e. the amount " - "of scattered light is largest when the " - "incident light is anti-parallel to the " - "viewing direction (the light goes " - "directly to the viewer). It is smallest" - " when the incident light is parallel to" - " the viewing direction. "), - ('3', "3 Mie murky", "Like haze but much more directional"), - ('4', "4 Rayleigh", "For extremely small particles such as " - "molecules of the air. The amount of " - "scattered light depends on the incident" - " light angle. It is largest when the " - "incident light is parallel or " - "anti-parallel to the viewing direction " - "and smallest when the incident light is " - "perpendicular to viewing direction."), - ('5', "5 Henyey-Greenstein", "The default eccentricity value " - "of zero defines isotropic " - "scattering while positive " - "values lead to scattering in " - "the direction of the light and " - "negative values lead to " - "scattering in the opposite " - "direction of the light. Larger " - "values of e (or smaller values " - "in the negative case) increase " - "the directional property of the" - " scattering.")), - default='1') + name="Scattering Type", + description="Scattering model", + items=( + ( + '1', + "1 Isotropic", + "The simplest form of scattering because" + " it is independent of direction." + ), + ( + '2', + "2 Mie haze ", + "For relatively small particles such as " + "minuscule water droplets of fog, cloud " + "particles, and particles responsible " + "for the polluted sky. In this model the" + " scattering is extremely directional in" + " the forward direction i.e. the amount " + "of scattered light is largest when the " + "incident light is anti-parallel to the " + "viewing direction (the light goes " + "directly to the viewer). It is smallest" + " when the incident light is parallel to" + " the viewing direction. " + ), + ( + '3', + "3 Mie murky", + "Like haze but much more directional" + ), + ( + '4', + "4 Rayleigh", + "For extremely small particles such as " + "molecules of the air. The amount of " + "scattered light depends on the incident" + " light angle. It is largest when the " + "incident light is parallel or " + "anti-parallel to the viewing direction " + "and smallest when the incident light is " + "perpendicular to viewing direction." + ), + ( + '5', + "5 Henyey-Greenstein", + "The default eccentricity value " + "of zero defines isotropic " + "scattering while positive " + "values lead to scattering in " + "the direction of the light and " + "negative values lead to " + "scattering in the opposite " + "direction of the light. Larger " + "values of e (or smaller values " + "in the negative case) increase " + "the directional property of the" + " scattering." + ) + ), + default='1', + ) media_diffusion_scale: FloatProperty( - name="Scale", description="Scale factor of Media Diffusion Color", - precision=12, step=0.00000001, min=0.000000001, max=1.0, - default=(1.0)) + name="Scale", + description="Scale factor of Media Diffusion Color", + precision=12, step=0.00000001, min=0.000000001, max=1.0, + default=(1.0), + ) media_diffusion_color: FloatVectorProperty( - name="Media Diffusion Color", description="The atmospheric media color", - precision=4, step=0.01, min=0, soft_max=1, - default=(0.001, 0.001, 0.001), - options={'ANIMATABLE'}, - subtype='COLOR') + name="Media Diffusion Color", + description="The atmospheric media color", + precision=4, step=0.01, min=0, soft_max=1, + default=(0.001, 0.001, 0.001), + options={'ANIMATABLE'}, + subtype='COLOR', + ) media_absorption_scale: FloatProperty( - name="Scale", description="Scale factor of Media Absorption Color. " - "use 1/depth of media volume in meters", - precision=12, step=0.000001, min=0.000000001, max=1.0, - default=(0.00002)) + name="Scale", + description="Scale factor of Media Absorption Color. " + "use 1/depth of media volume in meters", + precision=12, + step=0.000001, + min=0.000000001, + max=1.0, + default=(0.00002), + ) media_absorption_color: FloatVectorProperty( - name="Media Absorption Color", description="The atmospheric media absorption color", - precision=4, step=0.01, min=0, soft_max=1, - default=(0.0, 0.0, 0.0), - options={'ANIMATABLE'}, - subtype='COLOR') + name="Media Absorption Color", + description="The atmospheric media absorption color", + precision=4, step=0.01, min=0, soft_max=1, + default=(0.0, 0.0, 0.0), + options={'ANIMATABLE'}, + subtype='COLOR', + ) media_eccentricity: FloatProperty( - name="Media Eccenticity Factor", description="Positive values lead" - " to scattering in the direction of the light and negative " - "values lead to scattering in the opposite direction of the " - "light. Larger values of e (or smaller values in the negative" - " case) increase the directional property of the scattering.", - precision=2, step=0.01, min=-1.0, max=1.0, - default=(0.0), - options={'ANIMATABLE'}) + name="Media Eccenticity Factor", + description="Positive values lead" + " to scattering in the direction of the light and negative " + "values lead to scattering in the opposite direction of the " + "light. Larger values of e (or smaller values in the negative" + " case) increase the directional property of the scattering.", + precision=2, + step=0.01, + min=-1.0, + max=1.0, + default=(0.0), + options={'ANIMATABLE'}, + ) baking_enable: BoolProperty( - name="Enable Baking", - description="Enable POV texture baking", - default=False) + name="Enable Baking", + description="Enable POV texture baking", + default=False + ) + indentation_character: EnumProperty( - name="Indentation", - description="Select the indentation type", - items=(('NONE', "None", "No indentation"), - ('TAB', "Tabs", "Indentation with tabs"), - ('SPACE', "Spaces", "Indentation with spaces")), - default='SPACE') + name="Indentation", + description="Select the indentation type", + items=( + ('NONE', "None", "No indentation"), + ('TAB', "Tabs", "Indentation with tabs"), + ('SPACE', "Spaces", "Indentation with spaces")), + default='SPACE' + ) + indentation_spaces: IntProperty( - name="Quantity of spaces", - description="The number of spaces for indentation", - min=1, max=10, default=4) + name="Quantity of spaces", + description="The number of spaces for indentation", + min=1, + max=10, + default=4, + ) comments_enable: BoolProperty( - name="Enable Comments", - description="Add comments to pov file", - default=True) + name="Enable Comments", + description="Add comments to pov file", + default=True, + ) # Real pov options command_line_switches: StringProperty( - name="Command Line Switches", - description="Command line switches consist of a + (plus) or - " - "(minus) sign, followed by one or more alphabetic " - "characters and possibly a numeric value", - maxlen=500) + name="Command Line Switches", + description="Command line switches consist of a + (plus) or - " + "(minus) sign, followed by one or more alphabetic " + "characters and possibly a numeric value", + maxlen=500, + ) antialias_enable: BoolProperty( - name="Anti-Alias", description="Enable Anti-Aliasing", - default=True) + name="Anti-Alias", description="Enable Anti-Aliasing", + default=True, + ) antialias_method: EnumProperty( - name="Method", - description="AA-sampling method. Type 1 is an adaptive, " - "non-recursive, super-sampling method. Type 2 is an " - "adaptive and recursive super-sampling method. Type 3 " - "is a stochastic halton based super-sampling method", - items=(("0", "non-recursive AA", "Type 1 Sampling in POV"), - ("1", "recursive AA", "Type 2 Sampling in POV"), - ("2", "stochastic AA", "Type 3 Sampling in POV")), - default="1") + name="Method", + description="AA-sampling method. Type 1 is an adaptive, " + "non-recursive, super-sampling method. Type 2 is an " + "adaptive and recursive super-sampling method. Type 3 " + "is a stochastic halton based super-sampling method", + items=( + ("0", "non-recursive AA", "Type 1 Sampling in POV"), + ("1", "recursive AA", "Type 2 Sampling in POV"), + ("2", "stochastic AA", "Type 3 Sampling in POV") + ), + default="1", + ) antialias_confidence: FloatProperty( - name="Antialias Confidence", - description="how surely the computed color " - "of a given pixel is indeed" - "within the threshold error margin", - min=0.0001, max=1.0000, default=0.9900, precision=4) + name="Antialias Confidence", + description="how surely the computed color " + "of a given pixel is indeed" + "within the threshold error margin", + min=0.0001, max=1.0000, default=0.9900, precision=4 + ) + antialias_depth: IntProperty( - name="Antialias Depth", description="Depth of pixel for sampling", - min=1, max=9, default=3) + name="Antialias Depth", + description="Depth of pixel for sampling", + min=1, max=9, default=3 + ) antialias_threshold: FloatProperty( - name="Antialias Threshold", description="Tolerance for sub-pixels", - min=0.0, max=1.0, soft_min=0.05, soft_max=0.5, default=0.03) + name="Antialias Threshold", + description="Tolerance for sub-pixels", + min=0.0, + max=1.0, + soft_min=0.05, + soft_max=0.5, + default=0.03, + ) jitter_enable: BoolProperty( - name="Jitter", - description="Enable Jittering. Adds noise into the sampling " - "process (it should be avoided to use jitter in " - "animation)", - default=False) + name="Jitter", + description="Enable Jittering. Adds noise into the sampling " + "process (it should be avoided to use jitter in " + "animation)", + default=False, + ) jitter_amount: FloatProperty( - name="Jitter Amount", description="Amount of jittering", - min=0.0, max=1.0, soft_min=0.01, soft_max=1.0, default=1.0) + name="Jitter Amount", + description="Amount of jittering", + min=0.0, + max=1.0, + soft_min=0.01, + soft_max=1.0, + default=1.0, + ) antialias_gamma: FloatProperty( - name="Antialias Gamma", - description="POV-Ray compares gamma-adjusted values for super " - "sampling. Antialias Gamma sets the Gamma before " - "comparison", - min=0.0, max=5.0, soft_min=0.01, soft_max=2.5, default=2.5) + name="Antialias Gamma", + description="POV-Ray compares gamma-adjusted values for super " + "sampling. Antialias Gamma sets the Gamma before " + "comparison", + min=0.0, + max=5.0, + soft_min=0.01, + soft_max=2.5, + default=2.5, + ) alpha_mode: EnumProperty( - name="Alpha", - description="Representation of alpha information in the RGBA pixels", - items=(("SKY", "Sky", "Transparent pixels are filled with sky color"), - ("TRANSPARENT", "Transparent", "Transparent, World background is transparent with premultiplied alpha")), - default="SKY") + name="Alpha", + description="Representation of alpha information in the RGBA pixels", + items=( + ("SKY", "Sky", "Transparent pixels are filled with sky color"), + ( + "TRANSPARENT", + "Transparent", + "Transparent, World background is transparent with premultiplied alpha", + ), + ), + default="SKY", + ) use_shadows: BoolProperty( - name="Shadows", - description="Calculate shadows while rendering", - default=True) + name="Shadows", + description="Calculate shadows while rendering", + default=True, + ) max_trace_level: IntProperty( - name="Max Trace Level", - description="Number of reflections/refractions allowed on ray " - "path", - min=1, max=256, default=5) + name="Max Trace Level", + description="Number of reflections/refractions allowed on ray " + "path", + min=1, max=256, default=5 + ) -#######NEW from Lanuhum adc_bailout_enable: BoolProperty( - name="Enable", - description="", - default=False) + name="Enable", + description="", + default=False, + ) adc_bailout: FloatProperty( - name="ADC Bailout", - description="", - min=0.0, max=1000.0,default=0.00392156862745, precision=3) + name="ADC Bailout", + description="Adaptive Depth Control (ADC) to stop computing additional" + "reflected or refracted rays when their contribution is insignificant." + "The default value is 1/255, or approximately 0.0039, since a change " + "smaller than that could not be visible in a 24 bit image. Generally " + "this value is fine and should be left alone." + "Setting adc_bailout to 0 will disable ADC, relying completely on " + "max_trace_level to set an upper limit on the number of rays spawned. ", + min=0.0, + max=1000.0, + default=0.00392156862745, + precision=3 + ) ambient_light_enable: BoolProperty( - name="Enable", - description="", - default=False) + name="Enable", + description="", + default=False, + ) ambient_light: FloatVectorProperty( - name="Ambient Light", - description="Ambient light is used to simulate the effect of inter-diffuse reflection", - precision=4, step=0.01, min=0, soft_max=1, - default=(1, 1, 1), options={'ANIMATABLE'}, subtype='COLOR', + name="Ambient Light", + description="Ambient light is used to simulate the effect of inter-diffuse reflection", + precision=4, step=0.01, min=0, soft_max=1, + default=(1, 1, 1), options={'ANIMATABLE'}, subtype='COLOR', ) global_settings_advanced: BoolProperty( - name="Advanced", - description="", - default=False) + name="Advanced", + description="", + default=False, + ) irid_wavelength_enable: BoolProperty( - name="Enable", - description="", - default=False) + name="Enable", + description="", + default=False, + ) irid_wavelength: FloatVectorProperty( - name="Irid Wavelength", - description=( - "Iridescence calculations depend upon the dominant " - "wavelengths of the primary colors of red, green and blue light" - ), - precision=4, step=0.01, min=0, soft_max=1, - default=(0.25,0.18,0.14), options={'ANIMATABLE'}, subtype='COLOR') + name="Irid Wavelength", + description=( + "Iridescence calculations depend upon the dominant " + "wavelengths of the primary colors of red, green and blue light" + ), + precision=4, step=0.01, min=0, soft_max=1, + default=(0.25,0.18,0.14), options={'ANIMATABLE'}, subtype='COLOR' + ) charset: EnumProperty( - name="Charset", - description="This allows you to specify the assumed character set of all text strings", - items=(("ascii", "ASCII", ""), - ("utf8", "UTF-8", ""), - ("sys", "SYS", "")), - default="utf8") + name="Charset", + description="This allows you to specify the assumed character set of all text strings", + items=( + ("ascii", "ASCII", ""), + ("utf8", "UTF-8", ""), + ("sys", "SYS", "") + ), + default="utf8", + ) max_intersections_enable: BoolProperty( - name="Enable", - description="", - default=False) + name="Enable", + description="", + default=False, + ) max_intersections: IntProperty( - name="Max Intersections", - description="POV-Ray uses a set of internal stacks to collect ray/object intersection points", - min=2, max=1024, default=64) + name="Max Intersections", + description="POV-Ray uses a set of internal stacks to collect ray/object intersection points", + min=2, + max=1024, + default=64, + ) number_of_waves_enable: BoolProperty( - name="Enable", - description="", - default=False) + name="Enable", + description="", + default=False, + ) number_of_waves: IntProperty( - name="Number Waves", - description=( - "The waves and ripples patterns are generated by summing a series of waves, " - "each with a slightly different center and size" - ), - min=1, max=10, default=1000) + name="Number Waves", + description=( + "The waves and ripples patterns are generated by summing a series of waves, " + "each with a slightly different center and size" + ), + min=1, + max=10, + default=1000, + ) noise_generator_enable: BoolProperty( - name="Enable", - description="", - default=False) + name="Enable", + description="", + default=False, + ) noise_generator: IntProperty( - name="Noise Generator", - description="There are three noise generators implemented", - min=1, max=3, default=2) + name="Noise Generator", + description="There are three noise generators implemented", + min=1, + max=3, + default=2, + ) ########################### PHOTONS ####################################### photon_enable: BoolProperty( - name="Photons", - description="Enable global photons", - default=False) + name="Photons", + description="Enable global photons", + default=False, + ) photon_enable_count: BoolProperty( - name="Spacing / Count", - description="Enable count photons", - default=False) + name="Spacing / Count", + description="Enable count photons", + default=False, + ) photon_count: IntProperty( - name="Count", - description="Photons count", - min=1, max=100000000, default=20000) + name="Count", + description="Photons count", + min=1, + max=100000000, + default=20000 + ) photon_spacing: FloatProperty( - name="Spacing", - description="Average distance between photons on surfaces. half " - "this get four times as many surface photons", - min=0.001, max=1.000, default=0.005, - soft_min=0.001, soft_max=1.000, precision=3) + name="Spacing", + description="Average distance between photons on surfaces. half " + "this get four times as many surface photons", + min=0.001, + max=1.000, + soft_min=0.001, + soft_max=1.000, + precision=3 + default=0.005, + ) photon_max_trace_level: IntProperty( - name="Max Trace Level", - description="Number of reflections/refractions allowed on ray " - "path", - min=1, max=256, default=5) + name="Max Trace Level", + description="Number of reflections/refractions allowed on ray " + "path", + min=1, + max=256, + default=5 + ) photon_adc_bailout: FloatProperty( - name="ADC Bailout", - description="The adc_bailout for photons. Use adc_bailout = " - "0.01 / brightest_ambient_object for good results", - min=0.0, max=1000.0, default=0.1, - soft_min=0.0, soft_max=1.0, precision=3) + name="ADC Bailout", + description="The adc_bailout for photons. Use adc_bailout = " + "0.01 / brightest_ambient_object for good results", + min=0.0, + max=1000.0, + soft_min=0.0, + soft_max=1.0, + precision=3, + default=0.1, + ) photon_gather_min: IntProperty( - name="Gather Min", description="Minimum number of photons gathered" - "for each point", - min=1, max=256, default=20) + name="Gather Min", description="Minimum number of photons gathered" + "for each point", + min=1, max=256, default=20 + ) photon_gather_max: IntProperty( - name="Gather Max", description="Maximum number of photons gathered for each point", - min=1, max=256, default=100) + name="Gather Max", description="Maximum number of photons gathered for each point", + min=1, max=256, default=100 + ) photon_map_file_save_load: EnumProperty( - name="Operation", - description="Load or Save photon map file", - items=(("NONE", "None", ""), - ("save", "Save", ""), - ("load", "Load", "")), - default="NONE") + name="Operation", + description="Load or Save photon map file", + items=( + ("NONE", "None", ""), + ("save", "Save", ""), + ("load", "Load", "") + ), + default="NONE", + ) photon_map_filename: StringProperty( - name="Filename", - description="", - maxlen=1024) + name="Filename", + description="", + maxlen=1024 + ) photon_map_dir: StringProperty( - name="Directory", - description="", - maxlen=1024, subtype="DIR_PATH") + name="Directory", + description="", + maxlen=1024, + subtype="DIR_PATH", + ) photon_map_file: StringProperty( - name="File", - description="", - maxlen=1024, subtype="FILE_PATH") + name="File", + description="", + maxlen=1024, + subtype="FILE_PATH" + ) #########RADIOSITY######## radio_adc_bailout: FloatProperty( - name="ADC Bailout", - description="The adc_bailout for radiosity rays. Use " - "adc_bailout = 0.01 / brightest_ambient_object for good results", - min=0.0, max=1000.0, soft_min=0.0, soft_max=1.0, default=0.0039, precision=4) + name="ADC Bailout", + description="The adc_bailout for radiosity rays. Use " + "adc_bailout = 0.01 / brightest_ambient_object for good results", + min=0.0, + max=1000.0, + soft_min=0.0, + soft_max=1.0, + default=0.0039, + precision=4, + ) radio_always_sample: BoolProperty( - name="Always Sample", - description="Only use the data from the pretrace step and not gather " - "any new samples during the final radiosity pass", - default=False) + name="Always Sample", + description="Only use the data from the pretrace step and not gather " + "any new samples during the final radiosity pass", + default=False, + ) radio_brightness: FloatProperty( - name="Brightness", - description="Amount objects are brightened before being returned " - "upwards to the rest of the system", - min=0.0, max=1000.0, soft_min=0.0, soft_max=10.0, default=1.0) + name="Brightness", + description="Amount objects are brightened before being returned " + "upwards to the rest of the system", + min=0.0, max=1000.0, soft_min=0.0, soft_max=10.0, default=1.0 + ) radio_count: IntProperty( - name="Ray Count", - description="Number of rays for each new radiosity value to be calculated " - "(halton sequence over 1600)", - min=1, max=10000, soft_max=1600, default=35) + name="Ray Count", + description="Number of rays for each new radiosity value to be calculated " + "(halton sequence over 1600)", + min=1, max=10000, soft_max=1600, default=35 + ) radio_error_bound: FloatProperty( - name="Error Bound", - description="One of the two main speed/quality tuning values, " - "lower values are more accurate", - min=0.0, max=1000.0, soft_min=0.1, soft_max=10.0, default=1.8) + name="Error Bound", + description="One of the two main speed/quality tuning values, " + "lower values are more accurate", + min=0.0, max=1000.0, soft_min=0.1, soft_max=10.0, default=1.8 + ) radio_gray_threshold: FloatProperty( - name="Gray Threshold", - description="One of the two main speed/quality tuning values, " - "lower values are more accurate", - min=0.0, max=1.0, soft_min=0, soft_max=1, default=0.0) + name="Gray Threshold", + description="One of the two main speed/quality tuning values, " + "lower values are more accurate", + min=0.0, max=1.0, soft_min=0, soft_max=1, default=0.0 + ) radio_low_error_factor: FloatProperty( - name="Low Error Factor", - description="Just enough samples is slightly blotchy. Low error changes error " - "tolerance for less critical last refining pass", - min=0.000001, max=1.0, soft_min=0.000001, soft_max=1.0, default=0.5) + name="Low Error Factor", + description="Just enough samples is slightly blotchy. Low error changes error " + "tolerance for less critical last refining pass", + min=0.000001, max=1.0, soft_min=0.000001, soft_max=1.0, default=0.5 + ) radio_media: BoolProperty( - name="Media", description="Radiosity estimation can be affected by media", - default=True) + name="Media", + description="Radiosity estimation can be affected by media", + default=True, + ) radio_subsurface: BoolProperty( - name="Subsurface", description="Radiosity estimation can be affected by Subsurface Light Transport", - default=False) + name="Subsurface", + description="Radiosity estimation can be affected by Subsurface Light Transport", + default=False, + ) radio_minimum_reuse: FloatProperty( - name="Minimum Reuse", - description="Fraction of the screen width which sets the minimum radius of reuse " - "for each sample point (At values higher than 2% expect errors)", - min=0.0, max=1.0, soft_min=0.1, soft_max=0.1, default=0.015, precision=3) + name="Minimum Reuse", + description="Fraction of the screen width which sets the minimum radius of reuse " + "for each sample point (At values higher than 2% expect errors)", + min=0.0, max=1.0, soft_min=0.1, soft_max=0.1, default=0.015, precision=3 + ) radio_maximum_reuse: FloatProperty( - name="Maximum Reuse", - description="The maximum reuse parameter works in conjunction with, and is similar to that of minimum reuse, " - "the only difference being that it is an upper bound rather than a lower one", - min=0.0, max=1.0,default=0.2, precision=3) + name="Maximum Reuse", + description="The maximum reuse parameter works in conjunction with, and is similar to that of minimum reuse, " + "the only difference being that it is an upper bound rather than a lower one", + min=0.0, max=1.0,default=0.2, precision=3 + ) radio_nearest_count: IntProperty( - name="Nearest Count", - description="Number of old ambient values blended together to " - "create a new interpolated value", - min=1, max=20, default=1) + name="Nearest Count", + description="Number of old ambient values blended together to " + "create a new interpolated value", + min=1, max=20, default=1 + ) radio_normal: BoolProperty( - name="Normals", description="Radiosity estimation can be affected by normals", - default=False) + name="Normals", + description="Radiosity estimation can be affected by normals", + default=False, + ) radio_recursion_limit: IntProperty( - name="Recursion Limit", - description="how many recursion levels are used to calculate " - "the diffuse inter-reflection", - min=1, max=20, default=1) + name="Recursion Limit", + description="how many recursion levels are used to calculate " + "the diffuse inter-reflection", + min=1, max=20, default=1 + ) radio_pretrace_start: FloatProperty( - name="Pretrace Start", - description="Fraction of the screen width which sets the size of the " - "blocks in the mosaic preview first pass", - min=0.01, max=1.00, soft_min=0.02, soft_max=1.0, default=0.08) + name="Pretrace Start", + description="Fraction of the screen width which sets the size of the " + "blocks in the mosaic preview first pass", + min=0.01, max=1.00, soft_min=0.02, soft_max=1.0, default=0.08 + ) radio_pretrace_end: FloatProperty( - name="Pretrace End", - description="Fraction of the screen width which sets the size of the blocks " - "in the mosaic preview last pass", - min=0.000925, max=1.00, soft_min=0.01, soft_max=1.00, default=0.04, precision=3) + name="Pretrace End", + description="Fraction of the screen width which sets the size of the blocks " + "in the mosaic preview last pass", + min=0.000925, max=1.00, soft_min=0.01, soft_max=1.00, default=0.04, precision=3 + ) ############################################################################### # Material POV properties. ############################################################################### class MaterialTextureSlot(PropertyGroup): """Declare material texture slot level properties for UI and translated to POV.""" + bl_idname="pov_texture_slots", bl_description="Texture_slots from Blender-2.79", - + texture : StringProperty(update=active_texture_name_from_uilist) texture_search : StringProperty(update=active_texture_name_from_search) alpha_factor: FloatProperty( - name="Alpha", - description="Amount texture affects alpha", - default = 0.0) + name="Alpha", + description="Amount texture affects alpha", + default = 0.0, + ) ambient_factor: FloatProperty( - name="", - description="Amount texture affects ambient", - default = 0.0) + name="", + description="Amount texture affects ambient", + default = 0.0, + ) bump_method: EnumProperty( - name="", - description="Method to use for bump mapping", - items=(("BUMP_ORIGINAL", "Bump Original", ""), - ("BUMP_COMPATIBLE", "Bump Compatible", ""), - ("BUMP_DEFAULT", "Bump Default", ""), - ("BUMP_BEST_QUALITY", "Bump Best Quality", "")), - default="BUMP_ORIGINAL") + name="", + description="Method to use for bump mapping", + items=( + ("BUMP_ORIGINAL", "Bump Original", ""), + ("BUMP_COMPATIBLE", "Bump Compatible", ""), + ("BUMP_DEFAULT", "Bump Default", ""), + ("BUMP_BEST_QUALITY", "Bump Best Quality", "") + ), + default="BUMP_ORIGINAL", + ) bump_objectspace: EnumProperty( - name="", - description="Space to apply bump mapping in", - items=(("BUMP_VIEWSPACE", "Bump Viewspace", ""), - ("BUMP_OBJECTSPACE", "Bump Objectspace", ""), - ("BUMP_TEXTURESPACE", "Bump Texturespace", "")), - default="BUMP_VIEWSPACE") + name="", + description="Space to apply bump mapping in", + items=( + ("BUMP_VIEWSPACE", "Bump Viewspace", ""), + ("BUMP_OBJECTSPACE", "Bump Objectspace", ""), + ("BUMP_TEXTURESPACE", "Bump Texturespace", "") + ), + default="BUMP_VIEWSPACE", + ) density_factor: FloatProperty( - name="", - description="Amount texture affects density", - default = 0.0) + name="", + description="Amount texture affects density", + default = 0.0, + ) diffuse_color_factor: FloatProperty( - name="", - description="Amount texture affects diffuse color", - default = 0.0) + name="", + description="Amount texture affects diffuse color", + default = 0.0, + ) diffuse_factor: FloatProperty( - name="", - description="Amount texture affects diffuse reflectivity", - default = 0.0) + name="", + description="Amount texture affects diffuse reflectivity", + default = 0.0, + ) displacement_factor: FloatProperty( - name="", - description="Amount texture displaces the surface", - default = 0.0) + name="", + description="Amount texture displaces the surface", + default = 0.0, + ) emission_color_factor: FloatProperty( - name="", - description="Amount texture affects emission color", - default = 0.0) + name="", + description="Amount texture affects emission color", + default = 0.0, + ) emission_factor: FloatProperty( - name="", - description="Amount texture affects emission", - default = 0.0) + name="", + description="Amount texture affects emission", + default = 0.0, + ) emit_factor: FloatProperty( - name="", - description="Amount texture affects emission", - default = 0.0) + name="", + description="Amount texture affects emission", + default = 0.0, + ) hardness_factor: FloatProperty( - name="", - description="Amount texture affects hardness", - default = 0.0) + name="", + description="Amount texture affects hardness", + default = 0.0, + ) mapping: EnumProperty( - name="", - description="", - items=(("FLAT", "Flat", ""), - ("CUBE", "Cube", ""), - ("TUBE", "Tube", ""), - ("SPHERE", "Sphere", "")), - default="FLAT") + name="", + description="", + items=(("FLAT", "Flat", ""), + ("CUBE", "Cube", ""), + ("TUBE", "Tube", ""), + ("SPHERE", "Sphere", "")), + default="FLAT", + ) mapping_x: EnumProperty( - name="", - description="", - items=(("NONE", "", ""), - ("X", "", ""), - ("Y", "", ""), - ("Z", "", "")), - default="NONE") + name="", + description="", + items=(("NONE", "", ""), + ("X", "", ""), + ("Y", "", ""), + ("Z", "", "")), + default="NONE", + ) mapping_y: EnumProperty( - name="", - description="", - items=(("NONE", "", ""), - ("X", "", ""), - ("Y", "", ""), - ("Z", "", "")), - default="NONE") + name="", + description="", + items=(("NONE", "", ""), + ("X", "", ""), + ("Y", "", ""), + ("Z", "", "")), + default="NONE", + ) mapping_z: EnumProperty( - name="", - description="", - items=(("NONE", "", ""), - ("X", "", ""), - ("Y", "", ""), - ("Z", "", "")), - default="NONE") + name="", + description="", + items=(("NONE", "", ""), + ("X", "", ""), + ("Y", "", ""), + ("Z", "", "")), + default="NONE", + ) mirror_factor: FloatProperty( - name="", - description="Amount texture affects mirror color", - default = 0.0) + name="", + description="Amount texture affects mirror color", + default = 0.0, + ) normal_factor: FloatProperty( - name="", - description="Amount texture affects normal values", - default = 0.0) + name="", + description="Amount texture affects normal values", + default = 0.0, + ) normal_map_space: EnumProperty( - name="", - description="Sets space of normal map image", - items=(("CAMERA", "Camera", ""), - ("WORLD", "World", ""), - ("OBJECT", "Object", ""), - ("TANGENT", "Tangent", "")), - default="CAMERA") + name="", + description="Sets space of normal map image", + items=(("CAMERA", "Camera", ""), + ("WORLD", "World", ""), + ("OBJECT", "Object", ""), + ("TANGENT", "Tangent", "")), + default="CAMERA", + ) object: StringProperty( - name="Object", - description="Object to use for mapping with Object texture coordinates", - default ="") + name="Object", + description="Object to use for mapping with Object texture coordinates", + default ="", + ) raymir_factor: FloatProperty( - name="", - description="Amount texture affects ray mirror", - default = 0.0) + name="", + description="Amount texture affects ray mirror", + default = 0.0, + ) reflection_color_factor: FloatProperty( - name="", - description="Amount texture affects color of out-scattered light", - default = 0.0) + name="", + description="Amount texture affects color of out-scattered light", + default = 0.0, + ) reflection_factor: FloatProperty( - name="", - description="Amount texture affects brightness of out-scattered light", - default = 0.0) + name="", + description="Amount texture affects brightness of out-scattered light", + default = 0.0, + ) scattering_factor: FloatProperty( - name="", - description="Amount texture affects scattering", - default = 0.0) + name="", + description="Amount texture affects scattering", + default = 0.0, + ) specular_color_factor: FloatProperty( - name="", - description="Amount texture affects specular color", - default = 0.0) + name="", + description="Amount texture affects specular color", + default = 0.0, + ) specular_factor: FloatProperty( - name="", - description="Amount texture affects specular reflectivity", - default = 0.0) + name="", + description="Amount texture affects specular reflectivity", + default = 0.0, + ) texture_coords: EnumProperty( - name="", - description="", - items=(("GLOBAL", "Global", ""), - ("OBJECT", "Object", ""), - ("UV", "UV", ""), - ("ORCO", "Original Coordinates", ""), - ("STRAND", "Strand", ""), - ("STICKY", "Sticky", ""), - ("WINDOW", "Window", ""), - ("NORMAL", "Normal", ""), - ("REFLECTION", "Reflection", ""), - ("STRESS", "Stress", ""), - ("TANGENT", "Tangent", "")), - default="GLOBAL") + name="", + description="", + items=(("GLOBAL", "Global", ""), + ("OBJECT", "Object", ""), + ("UV", "UV", ""), + ("ORCO", "Original Coordinates", ""), + ("STRAND", "Strand", ""), + ("STICKY", "Sticky", ""), + ("WINDOW", "Window", ""), + ("NORMAL", "Normal", ""), + ("REFLECTION", "Reflection", ""), + ("STRESS", "Stress", ""), + ("TANGENT", "Tangent", "")), + default="GLOBAL", + ) translucency_factor: FloatProperty( - name="", - description="Amount texture affects translucency", - default = 0.0) + name="", + description="Amount texture affects translucency", + default = 0.0, + ) transmission_color_factor: FloatProperty( - name="", - description="Amount texture affects result color after light has been scattered/absorbed", - default = 0.0) + name="", + description="Amount texture affects result color after light has been scattered/absorbed", + default = 0.0, + ) use: BoolProperty( - name="", - description="Enable this material texture slot", - default = True) + name="", + description="Enable this material texture slot", + default = True, + ) use_from_dupli: BoolProperty( - name="", - description="Dupli’s instanced from verts, faces or particles, inherit texture coordinate from their parent", - default = False) + name="", + description="Dupli’s instanced from verts, faces or particles, inherit texture coordinate from their parent", + default = False, + ) use_from_original: BoolProperty( - name="", - description="Dupli’s derive their object coordinates from the original objects transformation", - default = False) + name="", + description="Dupli’s derive their object coordinates from the original objects transformation", + default = False, + ) use_map_alpha: BoolProperty( - name="", - description="Causes the texture to affect the alpha value", - default = False) + name="", + description="Causes the texture to affect the alpha value", + default = False, + ) use_map_ambient: BoolProperty( - name="", - description="Causes the texture to affect the value of ambient", - default = False) + name="", + description="Causes the texture to affect the value of ambient", + default = False, + ) use_map_color_diffuse: BoolProperty( - name="", - description="Causes the texture to affect basic color of the material", - default = False) + name="", + description="Causes the texture to affect basic color of the material", + default = False, + ) use_map_color_emission: BoolProperty( - name="", - description="Causes the texture to affect the color of emission", - default = False) + name="", + description="Causes the texture to affect the color of emission", + default = False, + ) use_map_color_reflection: BoolProperty( - name="", - description="Causes the texture to affect the color of scattered light", - default = False) + name="", + description="Causes the texture to affect the color of scattered light", + default = False, + ) use_map_color_spec: BoolProperty( - name="", - description="Causes the texture to affect the specularity color", - default = False) + name="", + description="Causes the texture to affect the specularity color", + default = False, + ) use_map_color_transmission: BoolProperty( - name="", - description="Causes the texture to affect the result color after other light has been scattered/absorbed", - default = False) + name="", + description="Causes the texture to affect the result color after other light has been scattered/absorbed", + default = False, + ) use_map_density: BoolProperty( - name="", - description="Causes the texture to affect the volume’s density", - default = False) + name="", + description="Causes the texture to affect the volume’s density", + default = False, + ) use_map_diffuse: BoolProperty( - name="", - description="Causes the texture to affect the value of the materials diffuse reflectivity", - default = False) + name="", + description="Causes the texture to affect the value of the materials diffuse reflectivity", + default = False, + ) use_map_displacement: BoolProperty( - name="", - description="Let the texture displace the surface", - default = False) + name="", + description="Let the texture displace the surface", + default = False, + ) use_map_emission: BoolProperty( - name="", - description="Causes the texture to affect the volume’s emission", - default = False) + name="", + description="Causes the texture to affect the volume’s emission", + default = False, + ) use_map_emit: BoolProperty( - name="", - description="Causes the texture to affect the emit value", - default = False) + name="", + description="Causes the texture to affect the emit value", + default = False, + ) use_map_hardness: BoolProperty( - name="", - description="Causes the texture to affect the hardness value", - default = False) + name="", + description="Causes the texture to affect the hardness value", + default = False, + ) use_map_mirror: BoolProperty( - name="", - description="Causes the texture to affect the mirror color", - default = False) + name="", + description="Causes the texture to affect the mirror color", + default = False, + ) use_map_normal: BoolProperty( - name="", - description="Causes the texture to affect the rendered normal", - default = False) + name="", + description="Causes the texture to affect the rendered normal", + default = False, + ) use_map_raymir: BoolProperty( - name="", - description="Causes the texture to affect the ray-mirror value", - default = False) + name="", + description="Causes the texture to affect the ray-mirror value", + default = False, + ) use_map_reflect: BoolProperty( - name="", - description="Causes the texture to affect the reflected light’s brightness", - default = False) + name="", + description="Causes the texture to affect the reflected light’s brightness", + default = False, + ) use_map_scatter: BoolProperty( - name="", - description="Causes the texture to affect the volume’s scattering", - default = False) + name="", + description="Causes the texture to affect the volume’s scattering", + default = False, + ) use_map_specular: BoolProperty( - name="", - description="Causes the texture to affect the value of specular reflectivity", - default = False) + name="", + description="Causes the texture to affect the value of specular reflectivity", + default = False, + ) use_map_translucency: BoolProperty( - name="", - description="Causes the texture to affect the translucency value", - default = False) + name="", + description="Causes the texture to affect the translucency value", + default = False, + ) use_map_warp: BoolProperty( - name="", - description="Let the texture warp texture coordinates of next channels", - default = False) + name="", + description="Let the texture warp texture coordinates of next channels", + default = False, + ) uv_layer: StringProperty( - name="", - description="UV layer to use for mapping with UV texture coordinates", - default = "") + name="", + description="UV layer to use for mapping with UV texture coordinates", + default = "", + ) warp_factor: FloatProperty( - name="", - description="Amount texture affects texture coordinates of next channels", - default = 0.0) - - -#######################################" - + name="", + description="Amount texture affects texture coordinates of next channels", + default = 0.0, + ) + + +#######################################" + blend_factor: FloatProperty( - name="Blend", - description="Amount texture affects color progression of the " - "background", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Blend", + description="Amount texture affects color progression of the " + "background", + soft_min=0.0, soft_max=1.0, default=1.0, + ) horizon_factor: FloatProperty( - name="Horizon", - description="Amount texture affects color of the horizon" - "", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Horizon", + description="Amount texture affects color of the horizon" + "", + soft_min=0.0, soft_max=1.0, default=1.0 + ) object: StringProperty( - name="Object", - description="Object to use for mapping with Object texture coordinates", - default="") + name="Object", + description="Object to use for mapping with Object texture coordinates", + default="", + ) texture_coords: EnumProperty( - name="Coordinates", - description="Texture coordinates used to map the texture onto the background", - items=(("VIEW", "View", "Use view vector for the texture coordinates"), - ("GLOBAL", "Global", "Use global coordinates for the texture coordinates (interior mist)"), - ("ANGMAP", "AngMap", "Use 360 degree angular coordinates, e.g. for spherical light probes"), - ("SPHERE", "Sphere", "For 360 degree panorama sky, spherical mapped, only top half"), - ("EQUIRECT", "Equirectangular", "For 360 degree panorama sky, equirectangular mapping"), - ("TUBE", "Tube", "For 360 degree panorama sky, cylindrical mapped, only top half"), - ("OBJECT", "Object", "Use linked object’s coordinates for texture coordinates")), - default="VIEW") + name="Coordinates", + description="Texture coordinates used to map the texture onto the background", + items=(("VIEW", "View", "Use view vector for the texture coordinates"), + ("GLOBAL", "Global", "Use global coordinates for the texture coordinates (interior mist)"), + ("ANGMAP", "AngMap", "Use 360 degree angular coordinates, e.g. for spherical light probes"), + ("SPHERE", "Sphere", "For 360 degree panorama sky, spherical mapped, only top half"), + ("EQUIRECT", "Equirectangular", "For 360 degree panorama sky, equirectangular mapping"), + ("TUBE", "Tube", "For 360 degree panorama sky, cylindrical mapped, only top half"), + ("OBJECT", "Object", "Use linked object’s coordinates for texture coordinates")), + default="VIEW", + ) use_map_blend: BoolProperty( - name="Blend Map", description="Affect the color progression of the background", - default=True) + name="Blend Map", + description="Affect the color progression of the background", + default=True, + ) use_map_horizon: BoolProperty( - name="Horizon Map", description="Affect the color of the horizon", - default=False) + name="Horizon Map", + description="Affect the color of the horizon", + default=False, + ) use_map_zenith_down: BoolProperty( - name="", description="Affect the color of the zenith below", - default=False) + name="", description="Affect the color of the zenith below", + default=False, + ) use_map_zenith_up: BoolProperty( - name="Zenith Up Map", description="Affect the color of the zenith above", - default=False) + name="Zenith Up Map", description="Affect the color of the zenith above", + default=False, + ) zenith_down_factor: FloatProperty( - name="Zenith Down", - description="Amount texture affects color of the zenith below", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Zenith Down", + description="Amount texture affects color of the zenith below", + soft_min=0.0, soft_max=1.0, default=1.0 + ) zenith_up_factor: FloatProperty( - name="Zenith Up", - description="Amount texture affects color of the zenith above", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Zenith Up", + description="Amount texture affects color of the zenith above", + soft_min=0.0, soft_max=1.0, default=1.0 + ) + - -# former Space properties from removed Blender Internal added below at superclass level -# so as to be available in World, Material, Light for texture slots use +# former Space properties from removed Blender Internal added below at superclass level +# so as to be available in World, Material, Light for texture slots use bpy.types.ID.use_limited_texture_context = BoolProperty( - name="", - description="Use the limited version of texture user (for ‘old shading’ mode)", - default=True) + name="", + description="Use the limited version of texture user (for ‘old shading’ mode)", + default=True, +) bpy.types.ID.texture_context = EnumProperty( - name="Texture context", - description="Type of texture data to display and edit", - items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures" - ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures" - ('LIGHT', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures" - ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures" - ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures" - ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures" - default = 'MATERIAL') + name="Texture context", + description="Type of texture data to display and edit", + items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures" + ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures" + ('LIGHT', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures" + ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures" + ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures" + ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures" + default = 'MATERIAL', +) bpy.types.ID.active_texture_index = IntProperty( - name = "Index for texture_slots", - default = 0) - + name = "Index for texture_slots", + default = 0, +) + class RenderPovSettingsMaterial(PropertyGroup): """Declare material level properties controllable in UI and translated to POV.""" + ######################Begin Old Blender Internal Props######################### - #former Space properties from removed Blender Internal + # former Space properties from removed Blender Internal use_limited_texture_context: BoolProperty( - name="", - description="Use the limited version of texture user (for ‘old shading’ mode)", - default=True) + name="", + description="Use the limited version of texture user (for ‘old shading’ mode)", + default=True, + ) texture_context: EnumProperty( - name="Texture context", - description="Type of texture data to display and edit", - items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures" - ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures" - ('LAMP', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures" - ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures" - ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures" - ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures" - default = 'MATERIAL') - + name="Texture context", + description="Type of texture data to display and edit", + items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures" + ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures" + ('LAMP', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures" + ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures" + ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures" + ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures" + default = 'MATERIAL', + ) + active_texture_index: IntProperty( - name = "Index for texture_slots", - default = 0) - + name = "Index for texture_slots", + default = 0, + ) + transparency_method: EnumProperty( - name="Specular Shader Model", - description="Method to use for rendering transparency", - items=(("MASK", "Mask", "Mask the background"), - ("Z_TRANSPARENCY", "Z Transparency", "Use alpha buffer for transparent faces"), - ("RAYTRACE", "Raytrace", "Use raytracing for transparent refraction rendering")), - default="MASK") - + name="Specular Shader Model", + description="Method to use for rendering transparency", + items=(("MASK", "Mask", "Mask the background"), + ("Z_TRANSPARENCY", "Z Transparency", "Use alpha buffer for transparent faces"), + ("RAYTRACE", "Raytrace", "Use raytracing for transparent refraction rendering")), + default="MASK", + ) + use_transparency: BoolProperty( - name="Transparency", description="Render material as transparent", - default=False) + name="Transparency", + description="Render material as transparent", + default=False, + ) alpha: FloatProperty( - name="Alpha", - description="Alpha transparency of the material", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) + name="Alpha", + description="Alpha transparency of the material", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3, + ) specular_alpha: FloatProperty( - name="Specular alpha", - description="Alpha transparency for specular areas", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) - + name="Specular alpha", + description="Alpha transparency for specular areas", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3, + ) + ambient: FloatProperty( - name="Ambient", - description="Amount of global ambient color the material receives", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) + name="Ambient", + description="Amount of global ambient color the material receives", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3, + ) diffuse_color: FloatVectorProperty( - name="Diffuse color", - description=("Diffuse color of the material"), - precision=4, step=0.01, min=0, #max=inf, soft_max=1, - default=(0.6,0.6,0.6), options={'ANIMATABLE'}, subtype='COLOR') + name="Diffuse color", + description=("Diffuse color of the material"), + precision=4, step=0.01, min=0, # max=inf, soft_max=1, + default=(0.6,0.6,0.6), options={'ANIMATABLE'}, subtype='COLOR', + ) darkness: FloatProperty( - name="Darkness", - description="Minnaert darkness", - min=0.0, max=2.0, soft_min=0.0, soft_max=2.0, default=1.0, precision=3) - + name="Darkness", + description="Minnaert darkness", + min=0.0, max=2.0, soft_min=0.0, soft_max=2.0, default=1.0, precision=3, + ) + diffuse_fresnel: FloatProperty( - name="Diffuse fresnel", - description="Power of Fresnel", - min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.0, precision=3) - + name="Diffuse fresnel", + description="Power of Fresnel", + min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.0, precision=3, + ) + diffuse_fresnel_factor: FloatProperty( - name="Diffuse fresnel factor", - description="Blending factor of Fresnel", - min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.5, precision=3) + name="Diffuse fresnel factor", + description="Blending factor of Fresnel", + min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.5, precision=3, + ) diffuse_intensity: FloatProperty( - name="Diffuse intensity", - description="Amount of diffuse reflection multiplying color", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.8, precision=3) - + name="Diffuse intensity", + description="Amount of diffuse reflection multiplying color", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.8, precision=3, + ) + diffuse_ramp_blend: EnumProperty( - name="Diffuse ramp blend", - description="Blending method of the ramp and the diffuse color", - items=(("MIX", "Mix", ""), - ("ADD", "Add", ""), - ("MULTIPLY", "Multiply", ""), - ("SUBTRACT", "Subtract", ""), - ("SCREEN", "Screen", ""), - ("DIVIDE", "Divide", ""), - ("DIFFERENCE", "Difference", ""), - ("DARKEN", "Darken", ""), - ("LIGHTEN", "Lighten", ""), - ("OVERLAY", "Overlay", ""), - ("DODGE", "Dodge", ""), - ("BURN", "Burn", ""), - ("HUE", "Hue", ""), - ("SATURATION", "Saturation", ""), - ("VALUE", "Value", ""), - ("COLOR", "Color", ""), - ("SOFT_LIGHT", "Soft light", ""), - ("LINEAR_LIGHT", "Linear light", "")), - default="MIX") + name="Diffuse ramp blend", + description="Blending method of the ramp and the diffuse color", + items=(("MIX", "Mix", ""), + ("ADD", "Add", ""), + ("MULTIPLY", "Multiply", ""), + ("SUBTRACT", "Subtract", ""), + ("SCREEN", "Screen", ""), + ("DIVIDE", "Divide", ""), + ("DIFFERENCE", "Difference", ""), + ("DARKEN", "Darken", ""), + ("LIGHTEN", "Lighten", ""), + ("OVERLAY", "Overlay", ""), + ("DODGE", "Dodge", ""), + ("BURN", "Burn", ""), + ("HUE", "Hue", ""), + ("SATURATION", "Saturation", ""), + ("VALUE", "Value", ""), + ("COLOR", "Color", ""), + ("SOFT_LIGHT", "Soft light", ""), + ("LINEAR_LIGHT", "Linear light", "")), + default="MIX", + ) diffuse_ramp_factor: FloatProperty( - name="Factor", - description="Blending factor (also uses alpha in Colorband)", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) - + name="Factor", + description="Blending factor (also uses alpha in Colorband)", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3, + ) + diffuse_ramp_input: EnumProperty( - name="Input", - description="How the ramp maps on the surface", - items=(("SHADER", "Shader", ""), - ("ENERGY", "Energy", ""), - ("NORMAL", "Normal", ""), - ("RESULT", "Result", "")), - default="SHADER") - + name="Input", + description="How the ramp maps on the surface", + items=(("SHADER", "Shader", ""), + ("ENERGY", "Energy", ""), + ("NORMAL", "Normal", ""), + ("RESULT", "Result", "")), + default="SHADER", + ) + diffuse_shader: EnumProperty( - name="Diffuse Shader Model", - description="How the ramp maps on the surface", - items=(("LAMBERT", "Lambert", "Use a Lambertian shader"), - ("OREN_NAYAR", "Oren-Nayar", "Use an Oren-Nayar shader"), - ("MINNAERT", "Minnaert", "Use a Minnaert shader"), - ("FRESNEL", "Fresnel", "Use a Fresnel shader")), - default="LAMBERT") + name="Diffuse Shader Model", + description="How the ramp maps on the surface", + items=(("LAMBERT", "Lambert", "Use a Lambertian shader"), + ("OREN_NAYAR", "Oren-Nayar", "Use an Oren-Nayar shader"), + ("MINNAERT", "Minnaert", "Use a Minnaert shader"), + ("FRESNEL", "Fresnel", "Use a Fresnel shader")), + default="LAMBERT", + ) diffuse_toon_size: FloatProperty( - name="Size", - description="Size of diffuse toon area", - min=0.0, max=3.14, soft_min=0.0, soft_max=3.14, default=0.5, precision=3) - + name="Size", + description="Size of diffuse toon area", + min=0.0, max=3.14, soft_min=0.0, soft_max=3.14, default=0.5, precision=3, + ) + diffuse_toon_smooth: FloatProperty( - name="Smooth", - description="Smoothness of diffuse toon area", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.1, precision=3) + name="Smooth", + description="Smoothness of diffuse toon area", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.1, precision=3, + ) emit: FloatProperty( - name="Emit", - description="Amount of light to emit", - min=0.0, soft_min=0.0, #max=inf, soft_max=inf, - default=0.0, precision=3) + name="Emit", + description="Amount of light to emit", + min=0.0, soft_min=0.0, # max=inf, soft_max=inf, + default=0.0, precision=3, + ) mirror_color: FloatVectorProperty( - name="Mirror color", - description=("Mirror color of the material"), - precision=4, step=0.01, min=0, #max=inf, soft_max=1, - default=(0.6,0.6,0.6), options={'ANIMATABLE'}, subtype='COLOR') - + name="Mirror color", + description=("Mirror color of the material"), + precision=4, step=0.01, min=0, # max=inf, soft_max=1, + default=(0.6,0.6,0.6), options={'ANIMATABLE'}, subtype='COLOR' + ) + roughness: FloatProperty( - name="Roughness", - description="Oren-Nayar Roughness", - min=0.0, max=3.14, soft_min=0.0, soft_max=3.14, default=0.5, precision=3) + name="Roughness", + description="Oren-Nayar Roughness", + min=0.0, max=3.14, soft_min=0.0, soft_max=3.14, + precision=3, + default=0.5, + ) halo: BoolProperty( - name="Halo", description=" Halo settings for the material", - default=False) - #(was readonly in Blender2.79, never None) - + name="Halo", + description=" Halo settings for the material", + default=False, + ) + # (was readonly in Blender2.79, never None) + line_color: FloatVectorProperty( - name="Line color", - description=("Line color used for Freestyle line rendering"), - precision=4, step=0.01, min=0, #max=inf, soft_max=1, - default=(0.0,0.0,0.0), options={'ANIMATABLE'}, subtype='COLOR') - - #diffuse_ramp: - ##Color ramp used to affect diffuse shading - ##Type: ColorRamp, (readonly) - - #cr_node = bpy.data.materials['Material'].node_tree.nodes['ColorRamp'] - #layout.template_color_ramp(cr_node, "color_ramp", expand=True) - - #ou - - #class bpy.types.ColorRamp(bpy_struct) + name="Line color", + description=("Line color used for Freestyle line rendering"), + precision=4, step=0.01, min=0, # max=inf, soft_max=1, + default=(0.0,0.0,0.0), options={'ANIMATABLE'}, subtype='COLOR' + ) + + # diffuse_ramp: + ## Color ramp used to affect diffuse shading + ## Type: ColorRamp, (readonly) + + # cr_node = bpy.data.materials['Material'].node_tree.nodes['ColorRamp'] + # layout.template_color_ramp(cr_node, "color_ramp", expand=True) + + # ou + + # class bpy.types.ColorRamp(bpy_struct) line_priority: IntProperty( - name="Recursion Limit", - description="The line color of a higher priority is used at material boundaries", - min=0, max=32767, default=0) - + name="Recursion Limit", + description="The line color of a higher priority is used at material boundaries", + min=0, max=32767, default=0, + ) + specular_color: FloatVectorProperty( - name="Specular color", - description=("Specular color of the material "), - precision=4, step=0.01, min=0, #max=inf, soft_max=1, - default=(1.0,1.0,1.0), options={'ANIMATABLE'}, subtype='COLOR') + name="Specular color", + description=("Specular color of the material "), + precision=4, step=0.01, min=0, # max=inf, soft_max=1, + default=(1.0,1.0,1.0), options={'ANIMATABLE'}, subtype='COLOR' + ) specular_hardness: IntProperty( - name="Hardness", - description="How hard (sharp) the specular reflection is", - min=1, max=511, default=50) - + name="Hardness", + description="How hard (sharp) the specular reflection is", + min=1, max=511, default=50, + ) + specular_intensity: FloatProperty( - name="Intensity", - description="How intense (bright) the specular reflection is", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.5, precision=3) + name="Intensity", + description="How intense (bright) the specular reflection is", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.5, precision=3 + ) specular_ior: FloatProperty( - name="IOR", - description="Specular index of refraction", - min=-10.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3) - + name="IOR", + description="Specular index of refraction", + min=-10.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3 + ) + ior: FloatProperty( - name="IOR", - description="Index of refraction", - min=-10.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3) + name="IOR", + description="Index of refraction", + min=-10.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3 + ) specular_shader: EnumProperty( - name="Specular Shader Model", - description="How the ramp maps on the surface", - items=(("COOKTORR", "CookTorr", "Use a Cook-Torrance shader"), - ("PHONG", "Phong", "Use a Phong shader"), - ("BLINN", "Blinn", "Use a Blinn shader"), - ("TOON", "Toon", "Use a Toon shader"), - ("WARDISO", "WardIso", "Use a Ward anisotropic shader")), - default="COOKTORR") + name="Specular Shader Model", + description="How the ramp maps on the surface", + items=(("COOKTORR", "CookTorr", "Use a Cook-Torrance shader"), + ("PHONG", "Phong", "Use a Phong shader"), + ("BLINN", "Blinn", "Use a Blinn shader"), + ("TOON", "Toon", "Use a Toon shader"), + ("WARDISO", "WardIso", "Use a Ward anisotropic shader")), + default="COOKTORR", + ) specular_slope: FloatProperty( - name="Slope", - description="The standard deviation of surface slope", - min=0.0, max=0.4, soft_min=0.0, soft_max=0.4, default=0.1, precision=3) + name="Slope", + description="The standard deviation of surface slope", + min=0.0, max=0.4, soft_min=0.0, soft_max=0.4, default=0.1, precision=3 + ) specular_toon_size: FloatProperty( - name="Size", - description="Size of specular toon area", - min=0.0, max=0.53, soft_min=0.0, soft_max=0.53, default=0.5, precision=3) + name="Size", + description="Size of specular toon area", + min=0.0, max=0.53, soft_min=0.0, soft_max=0.53, default=0.5, precision=3 + ) specular_toon_smooth: FloatProperty( - name="Smooth", - description="Smoothness of specular toon area", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.1, precision=3) - - + name="Smooth", + description="Smoothness of specular toon area", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.1, precision=3 + ) + + translucency: FloatProperty( - name="Translucency", - description="Amount of diffuse shading on the back side", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.0, precision=3) - + name="Translucency", + description="Amount of diffuse shading on the back side", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.0, precision=3 + ) + transparency_method: EnumProperty( - name="Specular Shader Model", - description="Method to use for rendering transparency", - items=(("MASK", "Mask", "Mask the background"), - ("Z_TRANSPARENCY", "Z Transparency", "Use an ior of 1 for transparent faces"), - ("RAYTRACE", "Raytrace", "Use raytracing for transparent refraction rendering")), - default="MASK") - + name="Specular Shader Model", + description="Method to use for rendering transparency", + items=(("MASK", "Mask", "Mask the background"), + ("Z_TRANSPARENCY", "Z Transparency", "Use an ior of 1 for transparent faces"), + ("RAYTRACE", "Raytrace", "Use raytracing for transparent refraction rendering")), + default="MASK", + ) + type: EnumProperty( - name="Type", - description="Material type defining how the object is rendered", - items=(("SURFACE", "Surface", "Render object as a surface"), - ("WIRE", "Wire", "Render the edges of faces as wires (not supported in raytracing)"),#TO UPDATE > USE MACRO AND CHANGE DESCRIPTION - ("VOLUME", "Volume", "Render object as a volume"), - ("‘HALO’", "Halo", "Render object as halo particles")), #TO UPDATE > USE MACRO AND CHANGE DESCRIPTION - default="SURFACE") - + name="Type", + description="Material type defining how the object is rendered", + items=(("SURFACE", "Surface", "Render object as a surface"), + ("WIRE", "Wire", "Render the edges of faces as wires (not supported in raytracing)"),# TO UPDATE > USE MACRO AND CHANGE DESCRIPTION + ("VOLUME", "Volume", "Render object as a volume"), + ("‘HALO’", "Halo", "Render object as halo particles")), # TO UPDATE > USE MACRO AND CHANGE DESCRIPTION + default="SURFACE", + ) + use_cast_shadows: BoolProperty( - name="Cast", description="Allow this material to cast shadows", - default=True) - + name="Cast", + description="Allow this material to cast shadows", + default=True, + ) + use_cast_shadows_only: BoolProperty( - name="Cast Only", description="Make objects with this material " - "appear invisible (not rendered), only " - "casting shadows", - default=False) - + name="Cast Only", + description="Make objects with this material " + "appear invisible (not rendered), only " + "casting shadows", + default=False, + ) + use_cubic: BoolProperty( - name="Cubic Interpolation", description="Use cubic interpolation for diffuse " - "values, for smoother transitions", - default=False) + name="Cubic Interpolation", + description="Use cubic interpolation for diffuse " + "values, for smoother transitions", + default=False, + ) use_diffuse_ramp: BoolProperty( - name="Ramp", description="Toggle diffuse ramp operations", - default=False) - + name="Ramp", + description="Toggle diffuse ramp operations", + default=False, + ) + use_light_group_exclusive: BoolProperty( - name="Exclusive", description="Material uses the light group exclusively" - "- these lamps are excluded from other " - "scene lighting", - default=False) - + name="Exclusive", + description="Material uses the light group exclusively" + "- these lamps are excluded from other " + "scene lighting", + default=False, + ) + use_light_group_local: BoolProperty( - name="Local", description="When linked in, material uses local light" - " group with the same name", - default=False) - + name="Local", + description="When linked in, material uses local light" + " group with the same name", + default=False, + ) + use_mist: BoolProperty( - name="Use Mist", description="Use mist with this material " - "(in world settings)", - default=True) - + name="Use Mist", + description="Use mist with this material " + "(in world settings)", + default=True, + ) + use_nodes: BoolProperty( - name="Nodes", description="Use shader nodes to render the material",#Add Icon in UI or here? icon='NODES' - default=False) - + name="Nodes", + description="Use shader nodes to render the material",# Add Icon in UI or here? icon='NODES' + default=False, + ) + use_object_color: BoolProperty( - name="Object Color", description="Modulate the result with a per-object color", - default=False) - + name="Object Color", + description="Modulate the result with a per-object color", + default=False, + ) + use_only_shadow: BoolProperty( - name="Shadows Only", description="Render shadows as the material’s alpha " - "value, making the material transparent " - "except for shadowed areas", - default=False) - + name="Shadows Only", + description="Render shadows as the material’s alpha " + "value, making the material transparent " + "except for shadowed areas", + default=False, + ) + use_shadeless: BoolProperty( - name="Shadeless", description="Make this material insensitive to " - "light or shadow", - default=False) - + name="Shadeless", + description="Make this material insensitive to " + "light or shadow", + default=False, + ) + use_shadows: BoolProperty( - name="Receive", description="Allow this material to receive shadows", - default=True) + name="Receive", + description="Allow this material to receive shadows", + default=True, + ) use_sky: BoolProperty( - name="Sky", description="Render this material with zero alpha, " - "with sky background in place (scanline only)", - default=False) - + name="Sky", + description="Render this material with zero alpha, " + "with sky background in place (scanline only)", + default=False, + ) + use_specular_ramp: BoolProperty( - name="Ramp", description="Toggle specular ramp operations", - default=False) - + name="Ramp", + description="Toggle specular ramp operations", + default=False, + ) + use_tangent_shading: BoolProperty( - name="Tangent Shading", description="Use the material’s tangent vector instead" - "of the normal for shading - for " - "anisotropic shading effects", - default=False) - + name="Tangent Shading", + description="Use the material’s tangent vector instead" + "of the normal for shading - for " + "anisotropic shading effects", + default=False, + ) + use_transparent_shadows: BoolProperty( - name="Receive Transparent", description="Allow this object to receive transparent " - "shadows cast through other object", - default=False) #linked to fake caustics - + name="Receive Transparent", + description="Allow this object to receive transparent " + "shadows cast through other object", + default=False, + ) # linked to fake caustics + use_vertex_color_light: BoolProperty( - name="Vertex Color Light", description="Add vertex colors as additional lighting", - default=False) - + name="Vertex Color Light", + description="Add vertex colors as additional lighting", + default=False, + ) + use_vertex_color_paint: BoolProperty( - name="Vertex Color Paint", description="Replace object base color with vertex " - "colors (multiply with ‘texture face’ " - "face assigned textures)", - default=False) + name="Vertex Color Paint", description="Replace object base color with vertex " + "colors (multiply with ‘texture face’ " + "face assigned textures)", + default=False, + ) + - specular_ramp_blend: EnumProperty( - name="Specular ramp blend", - description="Blending method of the ramp and the specular color", - items=(("MIX", "Mix", ""), - ("ADD", "Add", ""), - ("MULTIPLY", "Multiply", ""), - ("SUBTRACT", "Subtract", ""), - ("SCREEN", "Screen", ""), - ("DIVIDE", "Divide", ""), - ("DIFFERENCE", "Difference", ""), - ("DARKEN", "Darken", ""), - ("LIGHTEN", "Lighten", ""), - ("OVERLAY", "Overlay", ""), - ("DODGE", "Dodge", ""), - ("BURN", "Burn", ""), - ("HUE", "Hue", ""), - ("SATURATION", "Saturation", ""), - ("VALUE", "Value", ""), - ("COLOR", "Color", ""), - ("SOFT_LIGHT", "Soft light", ""), - ("LINEAR_LIGHT", "Linear light", "")), - default="MIX") + name="Specular ramp blend", + description="Blending method of the ramp and the specular color", + items=(("MIX", "Mix", ""), + ("ADD", "Add", ""), + ("MULTIPLY", "Multiply", ""), + ("SUBTRACT", "Subtract", ""), + ("SCREEN", "Screen", ""), + ("DIVIDE", "Divide", ""), + ("DIFFERENCE", "Difference", ""), + ("DARKEN", "Darken", ""), + ("LIGHTEN", "Lighten", ""), + ("OVERLAY", "Overlay", ""), + ("DODGE", "Dodge", ""), + ("BURN", "Burn", ""), + ("HUE", "Hue", ""), + ("SATURATION", "Saturation", ""), + ("VALUE", "Value", ""), + ("COLOR", "Color", ""), + ("SOFT_LIGHT", "Soft light", ""), + ("LINEAR_LIGHT", "Linear light", "")), + default="MIX", + ) specular_ramp_factor: FloatProperty( - name="Factor", - description="Blending factor (also uses alpha in Colorband)", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) - + name="Factor", + description="Blending factor (also uses alpha in Colorband)", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3, + ) + specular_ramp_input: EnumProperty( - name="Input", - description="How the ramp maps on the surface", - items=(("SHADER", "Shader", ""), - ("ENERGY", "Energy", ""), - ("NORMAL", "Normal", ""), - ("RESULT", "Result", "")), - default="SHADER") + name="Input", + description="How the ramp maps on the surface", + items=(("SHADER", "Shader", ""), + ("ENERGY", "Energy", ""), + ("NORMAL", "Normal", ""), + ("RESULT", "Result", "")), + default="SHADER", + ) irid_enable: BoolProperty( - name="Iridescence coating", - description="Newton's thin film interference (like an oil slick on a puddle of " - "water or the rainbow hues of a soap bubble.)", - default=False) + name="Iridescence coating", + description="Newton's thin film interference (like an oil slick on a puddle of " + "water or the rainbow hues of a soap bubble.)", + default=False, + ) mirror_use_IOR: BoolProperty( - name="Correct Reflection", - description="Use same IOR as raytrace transparency to calculate mirror reflections. " - "More physically correct", - default=False) + name="Correct Reflection", + description="Use same IOR as raytrace transparency to calculate mirror reflections. " + "More physically correct", + default=False, + ) mirror_metallic: BoolProperty( - name="Metallic Reflection", - description="mirror reflections get colored as diffuse (for metallic materials)", - default=False) + name="Metallic Reflection", + description="mirror reflections get colored as diffuse (for metallic materials)", + default=False, + ) conserve_energy: BoolProperty( - name="Conserve Energy", - description="Light transmitted is more correctly reduced by mirror reflections, " - "also the sum of diffuse and translucency gets reduced below one ", - default=True) + name="Conserve Energy", + description="Light transmitted is more correctly reduced by mirror reflections, " + "also the sum of diffuse and translucency gets reduced below one ", + default=True, + ) irid_amount: FloatProperty( - name="amount", - description="Contribution of the iridescence effect to the overall surface color. " - "As a rule of thumb keep to around 0.25 (25% contribution) or less, " - "but experiment. If the surface is coming out too white, try lowering " - "the diffuse and possibly the ambient values of the surface", - min=0.0, max=1.0, soft_min=0.01, soft_max=1.0, default=0.25) + name="amount", + description="Contribution of the iridescence effect to the overall surface color. " + "As a rule of thumb keep to around 0.25 (25% contribution) or less, " + "but experiment. If the surface is coming out too white, try lowering " + "the diffuse and possibly the ambient values of the surface", + min=0.0, max=1.0, soft_min=0.01, soft_max=1.0, default=0.25, + ) irid_thickness: FloatProperty( - name="thickness", - description="A very thin film will have a high frequency of color changes while a " - "thick film will have large areas of color", - min=0.0, max=1000.0, soft_min=0.1, soft_max=10.0, default=1) + name="thickness", + description="A very thin film will have a high frequency of color changes while a " + "thick film will have large areas of color", + min=0.0, max=1000.0, soft_min=0.1, soft_max=10.0, default=1, + ) irid_turbulence: FloatProperty( - name="turbulence", description="This parameter varies the thickness", - min=0.0, max=10.0, soft_min=0.000, soft_max=1.0, default=0) + name="turbulence", + description="This parameter varies the thickness", + min=0.0, max=10.0, soft_min=0.000, soft_max=1.0, default=0 + ) interior_fade_color: FloatVectorProperty( - name="Interior Fade Color", description="Color of filtered attenuation for transparent " - "materials", - precision=4, step=0.01, min=0.0, soft_max=1.0, - default=(0, 0, 0), options={'ANIMATABLE'}, subtype='COLOR') + name="Interior Fade Color", + description="Color of filtered attenuation for transparent " + "materials", + precision=4, step=0.01, min=0.0, soft_max=1.0, + default=(0, 0, 0), options={'ANIMATABLE'}, subtype='COLOR' + ) caustics_enable: BoolProperty( - name="Caustics", - description="use only fake refractive caustics (default) or photon based " - "reflective/refractive caustics", - default=True) + name="Caustics", + description="use only fake refractive caustics (default) or photon based " + "reflective/refractive caustics", + default=True, + ) fake_caustics: BoolProperty( - name="Fake Caustics", description="use only (Fast) fake refractive caustics", - default=True) + name="Fake Caustics", + description="use only (Fast) fake refractive caustics", + default=True, + ) fake_caustics_power: FloatProperty( - name="Fake caustics power", - description="Values typically range from 0.0 to 1.0 or higher. Zero is no caustics. " - "Low, non-zero values give broad hot-spots while higher values give " - "tighter, smaller simulated focal points", - min=0.00, max=10.0, soft_min=0.00, soft_max=5.0, default=0.15) + name="Fake caustics power", + description="Values typically range from 0.0 to 1.0 or higher. Zero is no caustics. " + "Low, non-zero values give broad hot-spots while higher values give " + "tighter, smaller simulated focal points", + min=0.00, max=10.0, soft_min=0.00, soft_max=5.0, default=0.15 + ) refraction_caustics: BoolProperty( - name="Refractive Caustics", description="hotspots of light focused when going through the material", - default=True) + name="Refractive Caustics", + description="hotspots of light focused when going through the material", + default=True, + ) photons_dispersion: FloatProperty( - name="Chromatic Dispersion", - description="Light passing through will be separated according to wavelength. " - "This ratio of refractive indices for violet to red controls how much " - "the colors are spread out 1 = no dispersion, good values are 1.01 to 1.1", - min=1.0000, max=10.000, soft_min=1.0000, soft_max=1.1000, precision=4, default=1.0000) + name="Chromatic Dispersion", + description="Light passing through will be separated according to wavelength. " + "This ratio of refractive indices for violet to red controls how much " + "the colors are spread out 1 = no dispersion, good values are 1.01 to 1.1", + min=1.0000, max=10.000, soft_min=1.0000, soft_max=1.1000, precision=4, + default=1.0000, + ) photons_dispersion_samples: IntProperty( - name="Dispersion Samples", description="Number of color-steps for dispersion", - min=2, max=128, default=7) + name="Dispersion Samples", + description="Number of color-steps for dispersion", + min=2, max=128, default=7, + ) photons_reflection: BoolProperty( - name="Reflective Photon Caustics", - description="Use this to make your Sauron's ring ;-P", - default=False) + name="Reflective Photon Caustics", + description="Use this to make your Sauron's ring ;-P", + default=False, + ) refraction_type: EnumProperty( - items=[ - ("1", "Z Transparency Fake Caustics", "use fake caustics"), - ("2", "Raytrace Photons Caustics", "use photons for refractive caustics")], - name="Refraction Type:", - description="use fake caustics (fast) or true photons for refractive Caustics", - default="1") + items=[ + ("1", "Z Transparency Fake Caustics", "use fake caustics"), + ("2", "Raytrace Photons Caustics", "use photons for refractive caustics")], + name="Refraction Type:", + description="use fake caustics (fast) or true photons for refractive Caustics", + default="1", + ) ##################################CustomPOV Code############################ replacement_text: StringProperty( - name="Declared name:", - description="Type the declared name in custom POV code or an external " - ".inc it points at. texture {} expected", - default="") - + name="Declared name:", + description="Type the declared name in custom POV code or an external " + ".inc it points at. texture {} expected", + default="", + ) # NODES @@ -1626,268 +1981,354 @@ class RenderPovSettingsMaterial(PropertyGroup): else: ob.pov.mesh_write_as = ob.pov.mesh_write_as_old - material_use_nodes: BoolProperty(name="Use nodes", description="", update=use_material_nodes_callback, default=False) - material_active_node: EnumProperty(name="Active node", description="", items=node_enum_callback, update=node_active_callback) - preview_settings: BoolProperty(name="Preview Settings", description="",default=False) - object_preview_transform: BoolProperty(name="Transform object", description="",default=False) - object_preview_scale: FloatProperty(name="XYZ", min=0.5, max=2.0, default=1.0) - object_preview_rotate: FloatVectorProperty(name="Rotate", description="", min=-180.0, max=180.0,default=(0.0,0.0,0.0), subtype='XYZ') - object_preview_bgcontrast: FloatProperty(name="Contrast", min=0.0, max=1.0, default=0.5) + material_use_nodes: BoolProperty( + name="Use nodes", + description="", + update=use_material_nodes_callback, + default=False, + ) + + material_active_node: EnumProperty( + name="Active node", + description="", + items=node_enum_callback, + update=node_active_callback + ) + + preview_settings: BoolProperty( + name="Preview Settings", + description="", + default=False, + ) + + object_preview_transform: BoolProperty( + name="Transform object", + description="", + default=False, + ) + + object_preview_scale: FloatProperty( + name="XYZ", + min=0.5, + max=2.0, + default=1.0, + ) + + object_preview_rotate: FloatVectorProperty( + name="Rotate", + description="", + min=-180.0, + max=180.0, + default=(0.0,0.0,0.0), + subtype='XYZ', + ) + + object_preview_bgcontrast: FloatProperty( + name="Contrast", + min=0.0, + max=1.0, + default=0.5, + ) + class MaterialRaytraceTransparency(PropertyGroup): """Declare transparency panel properties controllable in UI and translated to POV.""" - + depth: IntProperty( - name="Depth", - description="Maximum allowed number of light inter-refractions", - min=0, max=32767, default=2) - + name="Depth", + description="Maximum allowed number of light inter-refractions", + min=0, max=32767, default=2 + ) + depth_max: FloatProperty( - name="Depth", - description="Maximum depth for light to travel through the " - "transparent material before becoming fully filtered (0.0 is disabled)", - min=0, max=100, default=0.0) - + name="Depth", + description="Maximum depth for light to travel through the " + "transparent material before becoming fully filtered (0.0 is disabled)", + min=0, max=100, default=0.0, + ) + falloff: FloatProperty( - name="Falloff", - description="Falloff power for transmissivity filter effect (1.0 is linear)", - min=0.1, max=10.0, default=1.0, precision=3) + name="Falloff", + description="Falloff power for transmissivity filter effect (1.0 is linear)", + min=0.1, max=10.0, default=1.0, precision=3 + ) + filter: FloatProperty( - name="Filter", - description="Amount to blend in the material’s diffuse color in raytraced " - "transparency (simulating absorption)", - min=0.0, max=1.0, default=0.0, precision=3) + name="Filter", + description="Amount to blend in the material’s diffuse color in raytraced " + "transparency (simulating absorption)", + min=0.0, max=1.0, default=0.0, precision=3 + ) fresnel: FloatProperty( - name="Fresnel", - description="Power of Fresnel for transparency (Ray or ZTransp)", - min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.0, precision=3) + name="Fresnel", + description="Power of Fresnel for transparency (Ray or ZTransp)", + min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.0, precision=3 + ) fresnel_factor: FloatProperty( - name="Blend", - description="Blending factor for Fresnel", - min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.250, precision=3) - + name="Blend", + description="Blending factor for Fresnel", + min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.250, precision=3 + ) + gloss_factor: FloatProperty( - name="Amount", - description="The clarity of the refraction. " - "(values < 1.0 give diffuse, blurry refractions)", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) + name="Amount", + description="The clarity of the refraction. " + "(values < 1.0 give diffuse, blurry refractions)", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3 + ) gloss_samples: IntProperty( - name="Samples", - description="Number of cone samples averaged for blurry refractions", - min=0, max=1024, default=18) + name="Samples", + description="Number of cone samples averaged for blurry refractions", + min=0, max=1024, default=18 + ) gloss_threshold: FloatProperty( - name="Threshold", - description="Threshold for adaptive sampling (if a sample " - "contributes less than this amount [as a percentage], " - "sampling is stopped)", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.005, precision=3) + name="Threshold", + description="Threshold for adaptive sampling (if a sample " + "contributes less than this amount [as a percentage], " + "sampling is stopped)", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.005, precision=3 + ) ior: FloatProperty( - name="IOR", description="Sets angular index of refraction for raytraced refraction", - min=-0.0, max=10.0, soft_min=0.25, soft_max=4.0, default=1.3) - + name="IOR", + description="Sets angular index of refraction for raytraced refraction", + min=-0.0, max=10.0, soft_min=0.25, soft_max=4.0, default=1.3 + ) + class MaterialRaytraceMirror(PropertyGroup): """Declare reflection panel properties controllable in UI and translated to POV.""" - bl_description = "Raytraced reflection settings for the Material", + bl_description = "Raytraced reflection settings for the Material", + use: BoolProperty( - name="Mirror", - description="Enable raytraced reflections", - default=False) - + name="Mirror", + description="Enable raytraced reflections", + default=False, + ) + depth: IntProperty( - name="Depth", - description="Maximum allowed number of light inter-reflections", - min=0, max=32767, default=2) + name="Depth", + description="Maximum allowed number of light inter-reflections", + min=0, max=32767, default=2 + ) distance: FloatProperty( - name="Max Dist", - description="Maximum distance of reflected rays " - "(reflections further than this range " - "fade to sky color or material color)", - min=0.0, max=100000.0, soft_min=0.0, soft_max=10000.0, default=0.0, precision=3) + name="Max Dist", + description="Maximum distance of reflected rays " + "(reflections further than this range " + "fade to sky color or material color)", + min=0.0, max=100000.0, soft_min=0.0, soft_max=10000.0, default=0.0, precision=3 + ) fade_to: EnumProperty( - items=[ - ("FADE_TO_SKY", "Fade to sky", ""), - ("FADE_TO_MATERIAL", "Fade to material color", "")], - name="Fade-out Color", - description="The color that rays with no intersection within the " - "Max Distance take (material color can be best for " - "indoor scenes, sky color for outdoor)", - default="FADE_TO_SKY") + items=[ + ("FADE_TO_SKY", "Fade to sky", ""), + ("FADE_TO_MATERIAL", "Fade to material color", "")], + name="Fade-out Color", + description="The color that rays with no intersection within the " + "Max Distance take (material color can be best for " + "indoor scenes, sky color for outdoor)", + default="FADE_TO_SKY", + ) fresnel: FloatProperty( - name="Fresnel", - description="Power of Fresnel for mirror reflection", - min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.0, precision=3) + name="Fresnel", + description="Power of Fresnel for mirror reflection", + min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.0, precision=3, + ) fresnel_factor: FloatProperty( - name="Blend", - description="Blending factor for Fresnel", - min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.250, precision=3) + name="Blend", + description="Blending factor for Fresnel", + min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.250, precision=3 + ) gloss_anisotropic: FloatProperty( - name="Anisotropic", - description="The shape of the reflection, from 0.0 (circular) " - "to 1.0 (fully stretched along the tangent", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) + name="Anisotropic", + description="The shape of the reflection, from 0.0 (circular) " + "to 1.0 (fully stretched along the tangent", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3 + ) gloss_factor: FloatProperty( - name="Amount", - description="The shininess of the reflection " - "(values < 1.0 give diffuse, blurry reflections)", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) + name="Amount", + description="The shininess of the reflection " + "(values < 1.0 give diffuse, blurry reflections)", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3 + ) gloss_samples: IntProperty( - name="Samples", - description="Number of cone samples averaged for blurry reflections", - min=0, max=1024, default=18) + name="Samples", + description="Number of cone samples averaged for blurry reflections", + min=0, max=1024, default=18, + ) gloss_threshold: FloatProperty( - name="Threshold", - description="Threshold for adaptive sampling (if a sample " - "contributes less than this amount [as a percentage], " - "sampling is stopped)", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.005, precision=3) + name="Threshold", + description="Threshold for adaptive sampling (if a sample " + "contributes less than this amount [as a percentage], " + "sampling is stopped)", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.005, precision=3 + ) mirror_color: FloatVectorProperty( - name="Mirror color", - description=("Mirror color of the material"), - precision=4, step=0.01, - default=(1.0,1.0,1.0), options={'ANIMATABLE'}, subtype='COLOR') - + name="Mirror color", + description=("Mirror color of the material"), + precision=4, step=0.01, + default=(1.0,1.0,1.0), options={'ANIMATABLE'}, subtype='COLOR' + ) + reflect_factor: FloatProperty( - name="Reflectivity", - description="Amount of mirror reflection for raytrace", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) - + name="Reflectivity", + description="Amount of mirror reflection for raytrace", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3 + ) + + class MaterialSubsurfaceScattering(PropertyGroup): r"""Declare SSS/SSTL properties controllable in UI and translated to POV.""" - bl_description = "Subsurface scattering settings for the material", + bl_description = "Subsurface scattering settings for the material", use: BoolProperty( - name="Subsurface Scattering", - description="Enable diffuse subsurface scatting " - "effects in a material", - default=False) + name="Subsurface Scattering", + description="Enable diffuse subsurface scatting " + "effects in a material", + default=False, + ) - - back: FloatProperty( - name="Back", - description="Back scattering weight", - min=0.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3) - + name="Back", + description="Back scattering weight", + min=0.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3 + ) color: FloatVectorProperty( - name="Scattering color", - description=("Scattering color"), - precision=4, step=0.01, - default=(0.604,0.604,0.604), options={'ANIMATABLE'}, subtype='COLOR') + name="Scattering color", + description=("Scattering color"), + precision=4, step=0.01, + default=(0.604,0.604,0.604), options={'ANIMATABLE'}, subtype='COLOR' + ) color_factor: FloatProperty( - name="Color", - description="Blend factor for SSS colors", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3) + name="Color", + description="Blend factor for SSS colors", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3 + ) error_threshold: FloatProperty( - name="Error", - description="Error tolerance (low values are slower and higher quality)", - default=0.050, precision=3) + name="Error", + description="Error tolerance (low values are slower and higher quality)", + default=0.050, precision=3 + ) front: FloatProperty( - name="Front", - description="Front scattering weight", - min=0.0, max=2.0, soft_min=0.0, soft_max=2.0, default=1.0, precision=3) + name="Front", + description="Front scattering weight", + min=0.0, max=2.0, soft_min=0.0, soft_max=2.0, default=1.0, precision=3 + ) ior: FloatProperty( - name="IOR", description="Index of refraction (higher values are denser)", - min=-0.0, max=10.0, soft_min=0.1, soft_max=2.0, default=1.3) + name="IOR", + description="Index of refraction (higher values are denser)", + min=-0.0, max=10.0, soft_min=0.1, soft_max=2.0, default=1.3 + ) radius: FloatVectorProperty( - name="RGB Radius", - description=("Mean red/green/blue scattering path length"), - precision=4, step=0.01, min=0.001, - default=(1.0,1.0,1.0), options={'ANIMATABLE'}) + name="RGB Radius", + description=("Mean red/green/blue scattering path length"), + precision=4, step=0.01, min=0.001, + default=(1.0,1.0,1.0), options={'ANIMATABLE'} + ) scale: FloatProperty( - name="Scale", - description="Object scale factor", - default=0.100, precision=3) + name="Scale", + description="Object scale factor", + default=0.100, precision=3 + ) texture_factor: FloatProperty( - name="Texture", - description="Texture scattering blend factor", - min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.0, precision=3) + name="Texture", + description="Texture scattering blend factor", + min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.0, precision=3 + ) + class MaterialStrandSettings(PropertyGroup): """Declare strand properties controllable in UI and translated to POV.""" - bl_description = "Strand settings for the material", + bl_description = "Strand settings for the material", blend_distance: FloatProperty( - name="Distance", - description="Worldspace distance over which to blend in the surface normal", - min=0.0, max=10.0, soft_min=0.0, soft_max=10.0, default=0.0, precision=3) + name="Distance", + description="Worldspace distance over which to blend in the surface normal", + min=0.0, max=10.0, soft_min=0.0, soft_max=10.0, default=0.0, precision=3 + ) root_size: FloatProperty( - name="Root", - description="Start size of strands in pixels or Blender units", - min=0.25, default=1.0, precision=5) + name="Root", + description="Start size of strands in pixels or Blender units", + min=0.25, default=1.0, precision=5 + ) shape: FloatProperty( - name="Shape", - description="Positive values make strands rounder, negative ones make strands spiky", - min=-0.9, max=0.9, default=0.0, precision=3) + name="Shape", + description="Positive values make strands rounder, negative ones make strands spiky", + min=-0.9, max=0.9, default=0.0, precision=3 + ) size_min: FloatProperty( - name="Minimum", - description="Minimum size of strands in pixels", - min=0.001, max=10.0, default=1.0, precision=3) + name="Minimum", + description="Minimum size of strands in pixels", + min=0.001, max=10.0, default=1.0, precision=3 + ) tip_size: FloatProperty( - name="Tip", - description="End size of strands in pixels or Blender units", - min=0.0, default=1.0, precision=5) + name="Tip", + description="End size of strands in pixels or Blender units", + min=0.0, default=1.0, precision=5 + ) use_blender_units: BoolProperty( - name="Blender Units", - description="Use Blender units for widths instead of pixels", - default=False) + name="Blender Units", + description="Use Blender units for widths instead of pixels", + default=False, + ) use_surface_diffuse: BoolProperty( - name="Surface diffuse", - description="Make diffuse shading more similar to shading the surface", - default=False) + name="Surface diffuse", + description="Make diffuse shading more similar to shading the surface", + default=False, + ) use_tangent_shading: BoolProperty( - name="Tangent Shading", - description="Use direction of strands as normal for tangent-shading", - default=True) + name="Tangent Shading", + description="Use direction of strands as normal for tangent-shading", + default=True, + ) uv_layer: StringProperty( - name="UV Layer", - #icon="GROUP_UVS", - description="Name of UV map to override", - default="") + name="UV Layer", + # icon="GROUP_UVS", + description="Name of UV map to override", + default="", + ) width_fade: FloatProperty( - name="Width Fade", - description="Transparency along the width of the strand", - min=0.0, max=2.0, default=0.0, precision=3) + name="Width Fade", + description="Transparency along the width of the strand", + min=0.0, max=2.0, default=0.0, precision=3 + ) - # halo # Halo settings for the material - # Type: MaterialHalo, (readonly, never None) + # Type: MaterialHalo, (readonly, never None) # ambient @@ -2342,8 +2783,8 @@ class MaterialStrandSettings(PropertyGroup): # Volume settings for the material # Type: MaterialVolume, (readonly, never None) - ''' - (mat.type in {'SURFACE', 'WIRE', 'VOLUME'}) + ''' + (mat.type in {'SURFACE', 'WIRE', 'VOLUME'}) "use_transparency") @@ -2372,7 +2813,7 @@ class MaterialStrandSettings(PropertyGroup): col.prop(mat, "diffuse_color", text="") sub.active = (not mat.use_shadeless) - + sub.prop(mat, "diffuse_intensity", text="Intensity") @@ -2394,9 +2835,9 @@ class MaterialStrandSettings(PropertyGroup): row.prop(mat, "diffuse_fresnel_factor", text="Factor") if mat.use_diffuse_ramp: - + col.template_color_ramp(mat, "diffuse_ramp", expand=True) - + row.prop(mat, "diffuse_ramp_input", text="Input") @@ -2739,6 +3180,7 @@ class MaterialStrandSettings(PropertyGroup): ############################################################################### # Povray Nodes ############################################################################### + class PovraySocketUniversal(bpy.types.NodeSocket): bl_idname = 'PovraySocketUniversal' bl_label = 'Povray Socket' @@ -3181,522 +3623,598 @@ node_categories = [ ############################################################################### # Texture POV properties. ############################################################################### + class RenderPovSettingsTexture(PropertyGroup): """Declare texture level properties controllable in UI and translated to POV.""" - - #former Space properties from removed Blender Internal + + # former Space properties from removed Blender Internal active_texture_index: IntProperty( - name = "Index for texture_slots", - default = 0) + name = "Index for texture_slots", + default = 0, + ) + use_limited_texture_context: BoolProperty( - name="", - description="Use the limited version of texture user (for ‘old shading’ mode)", - default=True) + name="", + description="Use the limited version of texture user (for ‘old shading’ mode)", + default=True, + ) + texture_context: EnumProperty( - name="Texture context", - description="Type of texture data to display and edit", - items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures" - ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures" - ('LAMP', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures" - ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures" - ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures" - ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures" - default = 'MATERIAL') - - #Custom texture gamma + name="Texture context", + description="Type of texture data to display and edit", + items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures" + ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures" + ('LAMP', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures" + ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures" + ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures" + ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures" + default = 'MATERIAL', + ) + + # Custom texture gamma tex_gamma_enable: BoolProperty( - name="Enable custom texture gamma", - description="Notify some custom gamma for which texture has been precorrected " - "without the file format carrying it and only if it differs from your " - "OS expected standard (see pov doc)", - default=False) + name="Enable custom texture gamma", + description="Notify some custom gamma for which texture has been precorrected " + "without the file format carrying it and only if it differs from your " + "OS expected standard (see pov doc)", + default=False, + ) tex_gamma_value: FloatProperty( - name="Custom texture gamma", - description="value for which the file was issued e.g. a Raw photo is gamma 1.0", - min=0.45, max=5.00, soft_min=1.00, soft_max=2.50, default=1.00) + name="Custom texture gamma", + description="value for which the file was issued e.g. a Raw photo is gamma 1.0", + min=0.45, max=5.00, soft_min=1.00, soft_max=2.50, default=1.00 + ) ##################################CustomPOV Code############################ - #commented out below if we wanted custom pov code in texture only, inside exported material: - #replacement_text = StringProperty( + # commented out below if we wanted custom pov code in texture only, inside exported material: + # replacement_text = StringProperty( # name="Declared name:", # description="Type the declared name in custom POV code or an external .inc " # "it points at. pigment {} expected", # default="") - - tex_pattern_type: EnumProperty( - name="Texture_Type", - description="Choose between Blender or POV 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', - ) + name="Texture_Type", + description="Choose between Blender or POV 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') + 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) + 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') + 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') + 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') + 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) + 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) + 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) - + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + name="Numbers", + description="Numbers", + min=1, max=27, default=2 + ) modifier_control0: IntProperty( - name="Control0", - description="Control0", - min=0, max=100, default=1) + name="Control0", + description="Control0", + min=0, max=100, default=1 + ) modifier_control1: IntProperty( - name="Control1", - description="Control1", - min=0, max=100, default=1) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + name="Fractal Iteration", + description="", + min=0, max=100, default=20 + ) f_exponent: IntProperty( - name="Fractal Exponent", - description="", - min=2, max=33, default=2) + name="Fractal Exponent", + description="", + min=2, max=33, default=2 + ) f_ior: IntProperty( - name="Fractal Interior", - description="", - min=1, max=6, default=1) + 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) + 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) + 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) + 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) + 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) + 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) + 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') + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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') + 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) + 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') + 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) + 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') + 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) + 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') + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) - + name="Scale Z", + description="", + min=0.0, max=10000.0, default=1.0 + ) ############################################################################### # Object POV properties. @@ -3707,43 +4225,47 @@ class RenderPovSettingsObject(PropertyGroup): # Pov inside_vector used for CSG inside_vector: FloatVectorProperty( - name="CSG Inside Vector", description="Direction to shoot CSG inside test rays at", - precision=4, step=0.01, min=0, soft_max=1, - default=(0.001, 0.001, 0.5), - options={'ANIMATABLE'}, - subtype='XYZ') + name="CSG Inside Vector", description="Direction to shoot CSG inside test rays at", + precision=4, step=0.01, min=0, soft_max=1, + default=(0.001, 0.001, 0.5), + options={'ANIMATABLE'}, + subtype='XYZ' + ) # Importance sampling importance_value: FloatProperty( - name="Radiosity Importance", - description="Priority value relative to other objects for sampling radiosity rays. " - "Increase to get more radiosity rays at comparatively small yet " - "bright objects", - min=0.01, max=1.00, default=0.50) + name="Radiosity Importance", + description="Priority value relative to other objects for sampling radiosity rays. " + "Increase to get more radiosity rays at comparatively small yet " + "bright objects", + min=0.01, max=1.00, default=0.50 + ) # Collect photons collect_photons: BoolProperty( - name="Receive Photon Caustics", - description="Enable object to collect photons from other objects caustics. Turn " - "off for objects that don't really need to receive caustics (e.g. objects" - " that generate caustics often don't need to show any on themselves)", - default=True) + name="Receive Photon Caustics", + description="Enable object to collect photons from other objects caustics. Turn " + "off for objects that don't really need to receive caustics (e.g. objects" + " that generate caustics often don't need to show any on themselves)", + default=True, + ) # Photons spacing_multiplier spacing_multiplier: FloatProperty( - name="Photons Spacing Multiplier", - description="Multiplier value relative to global spacing of photons. " - "Decrease by half to get 4x more photons at surface of " - "this object (or 8x media photons than specified in the globals", - min=0.01, max=1.00, default=1.00) + name="Photons Spacing Multiplier", + description="Multiplier value relative to global spacing of photons. " + "Decrease by half to get 4x more photons at surface of " + "this object (or 8x media photons than specified in the globals", + min=0.01, max=1.00, default=1.00) ##################################CustomPOV Code############################ # Only DUMMIES below for now: replacement_text: StringProperty( - name="Declared name:", - description="Type the declared name in custom POV code or an external .inc " - "it points at. Any POV shape expected e.g: isosurface {}", - default="") + name="Declared name:", + description="Type the declared name in custom POV code or an external .inc " + "it points at. Any POV shape expected e.g: isosurface {}", + default="", + ) #############POV specific object properties.############################ object_as: StringProperty(maxlen=1024) @@ -3751,36 +4273,41 @@ class RenderPovSettingsObject(PropertyGroup): imported_loc: FloatVectorProperty( name="Imported Pov location", precision=6, - default=(0.0, 0.0, 0.0)) + default=(0.0, 0.0, 0.0), + ) imported_loc_cap: FloatVectorProperty( name="Imported Pov location", precision=6, - default=(0.0, 0.0, 2.0)) + default=(0.0, 0.0, 2.0), + ) unlock_parameters: BoolProperty(name="Lock",default = False) # not in UI yet but used for sor (lathe) / prism... pov primitives curveshape: EnumProperty( - name="Povray Shape Type", - items=(("birail", "Birail", ""), - ("cairo", "Cairo", ""), - ("lathe", "Lathe", ""), - ("loft", "Loft", ""), - ("prism", "Prism", ""), - ("sphere_sweep", "Sphere Sweep", "")), - default="sphere_sweep") + name="Povray Shape Type", + items=(("birail", "Birail", ""), + ("cairo", "Cairo", ""), + ("lathe", "Lathe", ""), + ("loft", "Loft", ""), + ("prism", "Prism", ""), + ("sphere_sweep", "Sphere Sweep", "")), + default="sphere_sweep", + ) mesh_write_as: EnumProperty( - name="Mesh Write As", - items=(("blobgrid", "Blob Grid", ""), - ("grid", "Grid", ""), - ("mesh", "Mesh", "")), - default="mesh") + name="Mesh Write As", + items=(("blobgrid", "Blob Grid", ""), + ("grid", "Grid", ""), + ("mesh", "Mesh", "")), + default="mesh", + ) object_ior: FloatProperty( - name="IOR", description="IOR", - min=1.0, max=10.0,default=1.0) + name="IOR", description="IOR", + min=1.0, max=10.0,default=1.0 + ) # shape_as_light = StringProperty(name="Light",maxlen=1024) # fake_caustics_power = FloatProperty( @@ -3817,11 +4344,13 @@ class RenderPovSettingsObject(PropertyGroup): hollow: BoolProperty(name="Hollow",default=False) boundorclip: EnumProperty( - name="Boundorclip", - items=(("none", "None", ""), - ("bounded_by", "Bounded_by", ""), - ("clipped_by", "Clipped_by", "")), - default="none") + name="Boundorclip", + items=(("none", "None", ""), + ("bounded_by", "Bounded_by", ""), + ("clipped_by", "Clipped_by", "")), + default="none", + ) + boundorclipob: StringProperty(maxlen=1024) addboundorclip: BoolProperty(description="",default=False) @@ -3835,10 +4364,11 @@ class RenderPovSettingsObject(PropertyGroup): res_v: IntProperty(name="V",min=100, max=1000, default=500) contained_by: EnumProperty( - name="Contained by", - items=(("box", "Box", ""), - ("sphere", "Sphere", "")), - default="box") + name="Contained by", + items=(("box", "Box", ""), + ("sphere", "Sphere", "")), + default="box", + ) container_scale: FloatProperty(name="Container Scale",min=0.0, max=10.0, default=1.00) @@ -3859,325 +4389,475 @@ class RenderPovSettingsObject(PropertyGroup): bpy.ops.pov.cylinder_update() cylinder_radius: FloatProperty( - name="Cylinder R",min=0.00, max=10.0, default=0.04, update=prop_update_cylinder) + name="Cylinder R",min=0.00, max=10.0, default=0.04, update=prop_update_cylinder) cylinder_location_cap: FloatVectorProperty( - name="Cylinder Cap Location", subtype='TRANSLATION', - description="The position of the 'other' end of the cylinder (relative to object location)", - default=(0.0, 0.0, 2.0), update=prop_update_cylinder) + name="Cylinder Cap Location", subtype='TRANSLATION', + description="The position of the 'other' end of the cylinder (relative to object location)", + default=(0.0, 0.0, 2.0), update=prop_update_cylinder + ) imported_cyl_loc: FloatVectorProperty( name="Imported Pov location", precision=6, - default=(0.0, 0.0, 0.0)) + default=(0.0, 0.0, 0.0) + ) imported_cyl_loc_cap: FloatVectorProperty( name="Imported Pov location", precision=6, - default=(0.0, 0.0, 2.0)) + default=(0.0, 0.0, 2.0) + ) def prop_update_sphere(self, context): - """Update POV sphere primitive parameters not only at creation but anytime they are changed in UI.""" + + """Update POV sphere primitive parameters not only at creation but anytime they are changed in UI.""" + bpy.ops.pov.sphere_update() sphere_radius: FloatProperty( name="Sphere radius",min=0.00, max=10.0, default=0.5, update=prop_update_sphere) - def prop_update_cone(self, context): - """Update POV cone primitive parameters not only at creation but anytime they are changed in UI.""" + + """Update POV cone primitive parameters not only at creation but anytime they are changed in UI.""" + bpy.ops.pov.cone_update() cone_base_radius: FloatProperty( - name = "Base radius", description = "The first radius of the cone", - default = 1.0, min = 0.01, max = 100.0, update=prop_update_cone) - + name = "Base radius", + description = "The first radius of the cone", + default = 1.0, min = 0.01, max = 100.0, update=prop_update_cone + ) + cone_cap_radius: FloatProperty( - name = "Cap radius", description = "The second radius of the cone", - default = 0.3, min = 0.0, max = 100.0, update=prop_update_cone) + name = "Cap radius", + description = "The second radius of the cone", + default = 0.3, min = 0.0, max = 100.0, update=prop_update_cone + ) cone_segments: IntProperty( - name = "Segments", description = "Radial segmentation of proxy mesh", - default = 16, min = 3, max = 265, update=prop_update_cone) + name = "Segments", + description = "Radial segmentation of proxy mesh", + default = 16, min = 3, max = 265, update=prop_update_cone + ) cone_height: FloatProperty( - name = "Height", description = "Height of the cone", - default = 2.0, min = 0.01, max = 100.0, update=prop_update_cone) + name = "Height", + description = "Height of the cone", + default = 2.0, min = 0.01, max = 100.0, update=prop_update_cone + ) cone_base_z: FloatProperty() - + cone_cap_z: FloatProperty() ###########Parametric def prop_update_parametric(self, context): + """Update POV parametric surface primitive parameters not only at creation but anytime they are changed in UI.""" + bpy.ops.pov.parametric_update() - u_min: FloatProperty(name = "U Min", - description = "", - default = 0.0, update=prop_update_parametric) - v_min: FloatProperty(name = "V Min", - description = "", - default = 0.0, update=prop_update_parametric) - u_max: FloatProperty(name = "U Max", - description = "", - default = 6.28, update=prop_update_parametric) - v_max: FloatProperty(name = "V Max", - description = "", - default = 12.57, update=prop_update_parametric) + u_min: FloatProperty( + name = "U Min", + description = "", + default = 0.0, update=prop_update_parametric + ) + + v_min: FloatProperty( + name = "V Min", + description = "", + default = 0.0, + update=prop_update_parametric + ) + + u_max: FloatProperty( + name = "U Max", + description = "", + default = 6.28, + update=prop_update_parametric + ) + + v_max: FloatProperty( + name = "V Max", + description = "", + default = 12.57, update=prop_update_parametric + ) + x_eq: StringProperty( - maxlen=1024, default = "cos(v)*(1+cos(u))*sin(v/8)", update=prop_update_parametric) + maxlen=1024, + default = "cos(v)*(1+cos(u))*sin(v/8)", + update=prop_update_parametric + ) + y_eq: StringProperty( - maxlen=1024, default = "sin(u)*sin(v/8)+cos(v/8)*1.5", update=prop_update_parametric) + maxlen=1024, + default = "sin(u)*sin(v/8)+cos(v/8)*1.5", + update=prop_update_parametric + ) + z_eq: StringProperty( - maxlen=1024, default = "sin(v)*(1+cos(u))*sin(v/8)", update=prop_update_parametric) + maxlen=1024, + default = "sin(v)*(1+cos(u))*sin(v/8)", + update=prop_update_parametric + ) -###########Torus + ###########Torus def prop_update_torus(self, context): + """Update POV torus primitive parameters not only at creation but anytime they are changed in UI.""" + bpy.ops.pov.torus_update() torus_major_segments: IntProperty( - name = "Segments", description = "Radial segmentation of proxy mesh", - default = 48, min = 3, max = 720, update=prop_update_torus) + name = "Segments", + description = "Radial segmentation of proxy mesh", + default = 48, min = 3, max = 720, update=prop_update_torus + ) + torus_minor_segments: IntProperty( - name = "Segments", description = "Cross-section segmentation of proxy mesh", - default = 12, min = 3, max = 720, update=prop_update_torus) + name = "Segments", + description = "Cross-section segmentation of proxy mesh", + default = 12, min = 3, max = 720, update=prop_update_torus + ) + torus_major_radius: FloatProperty( - name="Major radius", - description="Major radius", - min=0.00, max=100.00, default=1.0, update=prop_update_torus) + name="Major radius", + description="Major radius", + min=0.00, max=100.00, default=1.0, update=prop_update_torus + ) + torus_minor_radius: FloatProperty( - name="Minor radius", - description="Minor radius", - min=0.00, max=100.00, default=0.25, update=prop_update_torus) + name="Minor radius", + description="Minor radius", + min=0.00, max=100.00, default=0.25, update=prop_update_torus + ) -###########Rainbow - arc_angle: FloatProperty(name = "Arc angle", - description = "The angle of the raynbow arc in degrees", - default = 360, min = 0.01, max = 360.0) - falloff_angle: FloatProperty(name = "Falloff angle", - description = "The angle after which rainbow dissolves into background", - default = 360, min = 0.0, max = 360) + ###########Rainbow + arc_angle: FloatProperty( + name = "Arc angle", + description = "The angle of the raynbow arc in degrees", + default = 360, min = 0.01, max = 360.0 + ) + + falloff_angle: FloatProperty( + name = "Falloff angle", + description = "The angle after which rainbow dissolves into background", + default = 360, min = 0.0, max = 360 + ) -###########HeightFields + ###########HeightFields - quality: IntProperty(name = "Quality", - description = "", - default = 100, min = 1, max = 100) + quality: IntProperty( + name = "Quality", + description = "", + default = 100, min = 1, max = 100 + ) hf_filename: StringProperty(maxlen = 1024) hf_gamma: FloatProperty( - name="Gamma", - description="Gamma", - min=0.0001, max=20.0, default=1.0) + name="Gamma", + description="Gamma", + min=0.0001, max=20.0, default=1.0 + ) hf_premultiplied: BoolProperty( - name="Premultiplied", - description="Premultiplied", - default=True) + name="Premultiplied", + description="Premultiplied", + default=True, + ) hf_smooth: BoolProperty( - name="Smooth", - description="Smooth", - default=False) + name="Smooth", + description="Smooth", + default=False, + ) hf_water: FloatProperty( - name="Water Level", - description="Wather Level", - min=0.00, max=1.00, default=0.0) + name="Water Level", + description="Wather Level", + min=0.00, max=1.00, default=0.0, + ) hf_hierarchy: BoolProperty( - name="Hierarchy", - description="Height field hierarchy", - default=True) + name="Hierarchy", + description="Height field hierarchy", + default=True, + ) -##############Superellipsoid + ##############Superellipsoid def prop_update_superellipsoid(self, context): + """Update POV superellipsoid primitive parameters not only at creation but anytime they are changed in UI.""" + bpy.ops.pov.superellipsoid_update() se_param1: FloatProperty( - name="Parameter 1", - description="", - min=0.00, max=10.0, default=0.04) + name="Parameter 1", + description="", + min=0.00, max=10.0, default=0.04 + ) se_param2: FloatProperty( - name="Parameter 2", - description="", - min=0.00, max=10.0, default=0.04) - - se_u: IntProperty(name = "U-segments", - description = "radial segmentation", - default = 20, min = 4, max = 265, - update=prop_update_superellipsoid) - se_v: IntProperty(name = "V-segments", - description = "lateral segmentation", - default = 20, min = 4, max = 265, - update=prop_update_superellipsoid) - se_n1: FloatProperty(name = "Ring manipulator", - description = "Manipulates the shape of the Ring", - default = 1.0, min = 0.01, max = 100.0, - update=prop_update_superellipsoid) + name="Parameter 2", + description="", + min=0.00, max=10.0, default=0.04 + ) + + se_u: IntProperty( + name = "U-segments", + description = "radial segmentation", + default = 20, min = 4, max = 265, + update=prop_update_superellipsoid + ) + + se_v: IntProperty( + name = "V-segments", + description = "lateral segmentation", + default = 20, min = 4, max = 265, + update=prop_update_superellipsoid + ) + + se_n1: FloatProperty( + name = "Ring manipulator", + description = "Manipulates the shape of the Ring", + default = 1.0, min = 0.01, max = 100.0, + update=prop_update_superellipsoid + ) + se_n2: FloatProperty(name = "Cross manipulator", - description = "Manipulates the shape of the cross-section", - default = 1.0, min = 0.01, max = 100.0, - update=prop_update_superellipsoid) + description = "Manipulates the shape of the cross-section", + default = 1.0, min = 0.01, max = 100.0, + update=prop_update_superellipsoid + ) + se_edit: EnumProperty(items=[("NOTHING", "Nothing", ""), ("NGONS", "N-Gons", ""), ("TRIANGLES", "Triangles", "")], - name="Fill up and down", - description="", - default='TRIANGLES', - update=prop_update_superellipsoid) -#############Used for loft and Superellipsoid, etc. + name="Fill up and down", + description="", + default='TRIANGLES', + update=prop_update_superellipsoid + ) + + #############Used for loft and Superellipsoid, etc. curveshape: EnumProperty( - name="Povray Shape Type", - items=(("birail", "Birail", ""), - ("cairo", "Cairo", ""), - ("lathe", "Lathe", ""), - ("loft", "Loft", ""), - ("prism", "Prism", ""), - ("sphere_sweep", "Sphere Sweep", ""), - ("sor", "Surface of Revolution", "")), - default="sphere_sweep") + name="Povray Shape Type", + items=(("birail", "Birail", ""), + ("cairo", "Cairo", ""), + ("lathe", "Lathe", ""), + ("loft", "Loft", ""), + ("prism", "Prism", ""), + ("sphere_sweep", "Sphere Sweep", ""), + ("sor", "Surface of Revolution", "")), + default="sphere_sweep", + ) #############Supertorus def prop_update_supertorus(self, context): - """Update POV supertorus primitive parameters not only at creation but anytime they are changed in UI.""" + + """Update POV supertorus primitive parameters not only at creation but anytime they are changed in UI.""" + bpy.ops.pov.supertorus_update() st_major_radius: FloatProperty( - name="Major radius", - description="Major radius", - min=0.00, max=100.00, default=1.0, - update=prop_update_supertorus) + name="Major radius", + description="Major radius", + min=0.00, max=100.00, default=1.0, + update=prop_update_supertorus + ) st_minor_radius: FloatProperty( - name="Minor radius", - description="Minor radius", - min=0.00, max=100.00, default=0.25, - update=prop_update_supertorus) + name="Minor radius", + description="Minor radius", + min=0.00, max=100.00, default=0.25, + update=prop_update_supertorus + ) st_ring: FloatProperty( - name="Ring", - description="Ring manipulator", - min=0.0001, max=100.00, default=1.00, - update=prop_update_supertorus) + name="Ring", + description="Ring manipulator", + min=0.0001, max=100.00, default=1.00, + update=prop_update_supertorus + ) st_cross: FloatProperty( - name="Cross", - description="Cross manipulator", - min=0.0001, max=100.00, default=1.00, - update=prop_update_supertorus) + name="Cross", + description="Cross manipulator", + min=0.0001, max=100.00, default=1.00, + update=prop_update_supertorus + ) st_accuracy: FloatProperty( - name="Accuracy", - description="Supertorus accuracy", - min=0.00001, max=1.00, default=0.001) + name="Accuracy", + description="Supertorus accuracy", + min=0.00001, max=1.00, default=0.001 + ) st_max_gradient: FloatProperty( - name="Gradient", - description="Max gradient", - min=0.0001, max=100.00, default=10.00, - update=prop_update_supertorus) - - st_R: FloatProperty(name = "big radius", - description = "The radius inside the tube", - default = 1.0, min = 0.01, max = 100.0, - update=prop_update_supertorus) - st_r: FloatProperty(name = "small radius", - description = "The radius of the tube", - default = 0.3, min = 0.01, max = 100.0, - update=prop_update_supertorus) - st_u: IntProperty(name = "U-segments", - description = "radial segmentation", - default = 16, min = 3, max = 265, - update=prop_update_supertorus) - st_v: IntProperty(name = "V-segments", - description = "lateral segmentation", - default = 8, min = 3, max = 265, - update=prop_update_supertorus) - st_n1: FloatProperty(name = "Ring manipulator", - description = "Manipulates the shape of the Ring", - default = 1.0, min = 0.01, max = 100.0, - update=prop_update_supertorus) - st_n2: FloatProperty(name = "Cross manipulator", - description = "Manipulates the shape of the cross-section", - default = 1.0, min = 0.01, max = 100.0, - update=prop_update_supertorus) - st_ie: BoolProperty(name = "Use Int.+Ext. radii", - description = "Use internal and external radii", - default = False, - update=prop_update_supertorus) - st_edit: BoolProperty(name="", - description="", - default=False, - options={'HIDDEN'}, - update=prop_update_supertorus) - -########################Loft - loft_n: IntProperty(name = "Segments", - description = "Vertical segments", - default = 16, min = 3, max = 720) - loft_rings_bottom: IntProperty(name = "Bottom", - description = "Bottom rings", - default = 5, min = 2, max = 100) - loft_rings_side: IntProperty(name = "Side", - description = "Side rings", - default = 10, min = 2, max = 100) - loft_thick: FloatProperty(name = "Thickness", - description = "Manipulates the shape of the Ring", - default = 0.3, min = 0.01, max = 1.0) - loft_r: FloatProperty(name = "Radius", - description = "Radius", - default = 1, min = 0.01, max = 10) - loft_height: FloatProperty(name = "Height", - description = "Manipulates the shape of the Ring", - default = 2, min = 0.01, max = 10.0) - -###################Prism - prism_n: IntProperty(name = "Sides", - description = "Number of sides", - default = 5, min = 3, max = 720) - prism_r: FloatProperty(name = "Radius", - description = "Radius", - default = 1.0) - -##################Isosurface - iso_function_text: StringProperty(name="Function Text",maxlen=1024)#,update=iso_props_update_callback) - -##################PolygonToCircle - polytocircle_resolution: IntProperty(name = "Resolution", - description = "", - default = 3, min = 0, max = 256) - polytocircle_ngon: IntProperty(name = "NGon", - description = "", - min = 3, max = 64,default = 5) - polytocircle_ngonR: FloatProperty(name = "NGon Radius", - description = "", - default = 0.3) - polytocircle_circleR: FloatProperty(name = "Circle Radius", - description = "", - default = 1.0) + name="Gradient", + description="Max gradient", + min=0.0001, max=100.00, default=10.00, + update=prop_update_supertorus + ) + + st_R: FloatProperty( + name = "big radius", + description = "The radius inside the tube", + default = 1.0, min = 0.01, max = 100.0, + update=prop_update_supertorus + ) + + st_r: FloatProperty( + name = "small radius", + description = "The radius of the tube", + default = 0.3, min = 0.01, max = 100.0, + update=prop_update_supertorus + ) + + st_u: IntProperty( + name = "U-segments", + description = "radial segmentation", + default = 16, min = 3, max = 265, + update=prop_update_supertorus + ) + + st_v: IntProperty( + name = "V-segments", + description = "lateral segmentation", + default = 8, min = 3, max = 265, + update=prop_update_supertorus + ) + + st_n1: FloatProperty( + name = "Ring manipulator", + description = "Manipulates the shape of the Ring", + default = 1.0, min = 0.01, max = 100.0, + update=prop_update_supertorus + ) + + st_n2: FloatProperty( + name = "Cross manipulator", + description = "Manipulates the shape of the cross-section", + default = 1.0, min = 0.01, max = 100.0, + update=prop_update_supertorus + ) + + st_ie: BoolProperty( + name = "Use Int.+Ext. radii", + description = "Use internal and external radii", + default = False, + update=prop_update_supertorus + ) + + st_edit: BoolProperty( + name="", + description="", + default=False, + options={'HIDDEN'}, + update=prop_update_supertorus + ) + + ########################Loft + loft_n: IntProperty( + name = "Segments", + description = "Vertical segments", + default = 16, min = 3, max = 720 + ) + + loft_rings_bottom: IntProperty( + name = "Bottom", + description = "Bottom rings", + default = 5, min = 2, max = 100 + ) + + loft_rings_side: IntProperty( + name = "Side", + description = "Side rings", + default = 10, min = 2, max = 100 + ) + + loft_thick: FloatProperty( + name = "Thickness", + description = "Manipulates the shape of the Ring", + default = 0.3, min = 0.01, max = 1.0 + ) + + loft_r: FloatProperty( + name = "Radius", + description = "Radius", + default = 1, min = 0.01, max = 10 + ) + + loft_height: FloatProperty( + name = "Height", + description = "Manipulates the shape of the Ring", + default = 2, min = 0.01, max = 10.0 + ) + + ###################Prism + prism_n: IntProperty( + name = "Sides", + description = "Number of sides", + default = 5, min = 3, max = 720 + ) + + prism_r: FloatProperty( + name = "Radius", + description = "Radius", + default = 1.0 + ) + + ##################Isosurface + iso_function_text: StringProperty( + name="Function Text", + maxlen=1024 + ) #,update=iso_props_update_callback) + + ##################PolygonToCircle + polytocircle_resolution: IntProperty( + name = "Resolution", + description = "", + default = 3, min = 0, max = 256 + ) + + polytocircle_ngon: IntProperty( + name = "NGon", + description = "", + min = 3, max = 64,default = 5 + ) + + polytocircle_ngonR: FloatProperty( + name = "NGon Radius", + description = "", + default = 0.3 + ) + + polytocircle_circleR: FloatProperty( + name = "Circle Radius", + description = "", + default = 1.0 + ) ############################################################################### # Modifiers POV properties. ############################################################################### -#class RenderPovSettingsModifier(PropertyGroup): +# class RenderPovSettingsModifier(PropertyGroup): boolean_mod: EnumProperty( - name="Operation", - description="Choose the type of calculation for Boolean modifier", - items=(("BMESH", "Use the BMesh Boolean Solver", ""), - ("CARVE", "Use the Carve Boolean Solver", ""), - ("POV", "Use POV Constructive Solid Geometry", "")), - default="BMESH") - -#################Avogadro + name="Operation", + description="Choose the type of calculation for Boolean modifier", + items=(("BMESH", "Use the BMesh Boolean Solver", ""), + ("CARVE", "Use the Carve Boolean Solver", ""), + ("POV", "Use POV Constructive Solid Geometry", "")), + default="BMESH", + ) + + #################Avogadro # filename_ext = ".png" # filter_glob = StringProperty( @@ -4189,238 +4869,310 @@ class RenderPovSettingsObject(PropertyGroup): # Camera POV properties. ############################################################################### class RenderPovSettingsCamera(PropertyGroup): + """Declare camera properties controllable in UI and translated to POV.""" - #DOF Toggle + + # DOF Toggle dof_enable: BoolProperty( - name="Depth Of Field", description="Enable POV Depth Of Field ", - default=False) + name="Depth Of Field", + description="Enable POV Depth Of Field ", + default=False, + ) # Aperture (Intensity of the Blur) dof_aperture: FloatProperty( - name="Aperture", - description="Similar to a real camera's aperture effect over focal blur (though not " - "in physical units and independent of focal length). " - "Increase to get more blur", - min=0.01, max=1.00, default=0.50) + name="Aperture", + description="Similar to a real camera's aperture effect over focal blur (though not " + "in physical units and independent of focal length). " + "Increase to get more blur", + min=0.01, max=1.00, default=0.50 + ) # Aperture adaptive sampling dof_samples_min: IntProperty( - name="Samples Min", description="Minimum number of rays to use for each pixel", - min=1, max=128, default=3) + name="Samples Min", + description="Minimum number of rays to use for each pixel", + min=1, max=128, default=3 + ) dof_samples_max: IntProperty( - name="Samples Max", description="Maximum number of rays to use for each pixel", - min=1, max=128, default=9) + name="Samples Max", + description="Maximum number of rays to use for each pixel", + min=1, max=128, default=9 + ) dof_variance: IntProperty( - name="Variance", - description="Minimum threshold (fractional value) for adaptive DOF sampling (up " - "increases quality and render time). The value for the variance should " - "be in the range of the smallest displayable color difference", - min=1, max=100000, soft_max=10000, default=8192) + name="Variance", + description="Minimum threshold (fractional value) for adaptive DOF sampling (up " + "increases quality and render time). The value for the variance should " + "be in the range of the smallest displayable color difference", + min=1, max=100000, soft_max=10000, default=8192 + ) dof_confidence: FloatProperty( - name="Confidence", - description="Probability to reach the real color value. Larger confidence values " - "will lead to more samples, slower traces and better images", - min=0.01, max=0.99, default=0.20) + name="Confidence", + description="Probability to reach the real color value. Larger confidence values " + "will lead to more samples, slower traces and better images", + min=0.01, max=0.99, default=0.20 + ) normal_enable: BoolProperty(name="Perturbated Camera", default=False) + cam_normal: FloatProperty(name="Normal Strength", min=0.0, max=1.0, default=0.0) + normal_patterns: EnumProperty( - name="Pattern", - description="", - items=(('agate', "Agate", ""), ('boxed', "Boxed", ""), ('bumps', "Bumps", ""), ('cells', "Cells", ""), - ('crackle', "Crackle", ""),('dents', "Dents", ""), - ('granite', "Granite", ""), - ('leopard', "Leopard", ""), - ('marble', "Marble", ""), ('onion', "Onion", ""), ('pavement', "Pavement", ""), ('planar', "Planar", ""), - ('quilted', "Quilted", ""), ('ripples', "Ripples", ""), ('radial', "Radial", ""), - ('spherical', "Spherical", ""),('spiral1', "Spiral1", ""), ('spiral2', "Spiral2", ""), ('spotted', "Spotted", ""), - ('square', "Square", ""),('tiling', "Tiling", ""), - ('waves', "Waves", ""), ('wood', "Wood", ""),('wrinkles', "Wrinkles", "")), - default='agate') + name="Pattern", + description="", + items=(('agate', "Agate", ""), ('boxed', "Boxed", ""), ('bumps', "Bumps", ""), ('cells', "Cells", ""), + ('crackle', "Crackle", ""),('dents', "Dents", ""), + ('granite', "Granite", ""), + ('leopard', "Leopard", ""), + ('marble', "Marble", ""), ('onion', "Onion", ""), ('pavement', "Pavement", ""), ('planar', "Planar", ""), + ('quilted', "Quilted", ""), ('ripples', "Ripples", ""), ('radial', "Radial", ""), + ('spherical', "Spherical", ""),('spiral1', "Spiral1", ""), ('spiral2', "Spiral2", ""), ('spotted', "Spotted", ""), + ('square', "Square", ""),('tiling', "Tiling", ""), + ('waves', "Waves", ""), ('wood', "Wood", ""),('wrinkles', "Wrinkles", "")), + default='agate', + ) + turbulence: FloatProperty(name="Turbulence", min=0.0, max=100.0, default=0.1) + scale: FloatProperty(name="Scale", min=0.0,default=1.0) ##################################CustomPOV Code############################ # Only DUMMIES below for now: replacement_text: StringProperty( - name="Texts in blend file", - description="Type the declared name in custom POV code or an external .inc " - "it points at. camera {} expected", - default="") + name="Texts in blend file", + description="Type the declared name in custom POV code or an external .inc " + "it points at. camera {} expected", + default="", + ) ############################################################################### # Light POV properties. ############################################################################### class RenderPovSettingsLight(PropertyGroup): + """Declare light properties controllable in UI and translated to POV.""" - #former Space properties from removed Blender Internal + + # former Space properties from removed Blender Internal use_limited_texture_context: BoolProperty( - name="", - description="Use the limited version of texture user (for ‘old shading’ mode)", - default=True) + name="", + description="Use the limited version of texture user (for ‘old shading’ mode)", + default=True, + ) + texture_context: EnumProperty( - name="Texture context", - description="Type of texture data to display and edit", - items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures" - ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures" - ('LAMP', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures" - ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures" - ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures" - ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures" - default = 'MATERIAL') - + name="Texture context", + description="Type of texture data to display and edit", + items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures" + ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures" + ('LAMP', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures" + ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures" + ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures" + ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures" + default = 'MATERIAL', + ) + shadow_method: EnumProperty( - name="Shadow", - description="", - items=(("NOSHADOW", "No Shadow", "No Shadow"), - ("RAY_SHADOW", "Ray Shadow", "Ray Shadow, Use ray tracing for shadow")), - default="RAY_SHADOW") + name="Shadow", + description="", + items=(("NOSHADOW", "No Shadow", "No Shadow"), + ("RAY_SHADOW", "Ray Shadow", "Ray Shadow, Use ray tracing for shadow")), + default="RAY_SHADOW", + ) + active_texture_index: IntProperty( - name = "Index for texture_slots", - default = 0) + name = "Index for texture_slots", + default = 0 + ) + use_halo: BoolProperty( - name="Halo", description="Render spotlight with a volumetric halo", - default=False) + name="Halo", + description="Render spotlight with a volumetric halo", + default=False, + ) + halo_intensity: FloatProperty( - name="Halo intensity", - description="Brightness of the spotlight halo cone", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Halo intensity", + description="Brightness of the spotlight halo cone", + soft_min=0.0, soft_max=1.0, default=1.0 + ) + shadow_ray_samples_x: IntProperty( - name = "Number of samples taken extra (samples x samples)", - min=1, soft_max=64, - default = 1) + name = "Number of samples taken extra (samples x samples)", + min=1, soft_max=64, + default = 1, + ) + shadow_ray_samples_y: IntProperty( - name = "Number of samples taken extra (samples x samples)", - min=1, soft_max=64, - default = 1) + name = "Number of samples taken extra (samples x samples)", + min=1, soft_max=64, + default = 1, + ) + shadow_ray_sample_method: EnumProperty( - name="", - description="Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower", - items=(('ADAPTIVE_QMC', "", "Halton samples distribution", "",0), - ('CONSTANT_QMC', "", "QMC samples distribution", "",1), - ('CONSTANT_JITTERED', "", "Uses POV jitter keyword", "",2)), #"Show other data textures" - default = 'CONSTANT_JITTERED') + name="", + description="Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower", + items=(('ADAPTIVE_QMC', "", "Halton samples distribution", "",0), + ('CONSTANT_QMC', "", "QMC samples distribution", "",1), + ('CONSTANT_JITTERED', "", "Uses POV jitter keyword", "",2)), # "Show other data textures" + default = 'CONSTANT_JITTERED', + ) + use_jitter: BoolProperty( - name="Jitter", description="Use noise for sampling (Constant Jittered sampling)", - default=False) + name="Jitter", + description="Use noise for sampling (Constant Jittered sampling)", + default=False, + ) + ############################################################################### # World POV properties. ############################################################################### class RenderPovSettingsWorld(PropertyGroup): + """Declare world properties controllable in UI and translated to POV.""" - #former Space properties from removed Blender Internal + + # former Space properties from removed Blender Internal use_limited_texture_context: BoolProperty( - name="", - description="Use the limited version of texture user (for ‘old shading’ mode)", - default=True) + name="", + description="Use the limited version of texture user (for ‘old shading’ mode)", + default=True, + ) + texture_context: EnumProperty( - name="Texture context", - description="Type of texture data to display and edit", - items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures" - ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures" - ('LAMP', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures" - ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures" - ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures" - ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures" - default = 'MATERIAL') + name="Texture context", + description="Type of texture data to display and edit", + items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures" + ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures" + ('LAMP', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures" + ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures" + ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures" + ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures" + default = 'MATERIAL', + ) use_sky_blend: BoolProperty( - name="Blend Sky", description="Render background with natural progression from horizon to zenith", - default=False) + name="Blend Sky", + description="Render background with natural progression from horizon to zenith", + default=False, + ) + use_sky_paper: BoolProperty( - name="Paper Sky", description="Flatten blend or texture coordinates", - default=False) + name="Paper Sky", + description="Flatten blend or texture coordinates", + default=False, + ) + use_sky_real: BoolProperty( - name="Real Sky", description="Render background with a real horizon, relative to the camera angle", - default=False) - + name="Real Sky", + description="Render background with a real horizon, relative to the camera angle", + default=False, + ) + horizon_color: FloatVectorProperty( - name="Horizon Color", - description="Color at the horizon", - precision=4, step=0.01, min=0, soft_max=1, - default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR', + name="Horizon Color", + description="Color at the horizon", + precision=4, step=0.01, min=0, soft_max=1, + default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR', ) + zenith_color: FloatVectorProperty( - name="Zenith Color", - description="Color at the zenith", - precision=4, step=0.01, min=0, soft_max=1, - default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR', + name="Zenith Color", + description="Color at the zenith", + precision=4, step=0.01, min=0, soft_max=1, + default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR', ) + ambient_color: FloatVectorProperty( - name="Ambient Color", - description="Ambient color of the world", - precision=4, step=0.01, min=0, soft_max=1, - default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR', + name="Ambient Color", + description="Ambient color of the world", + precision=4, step=0.01, min=0, soft_max=1, + default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR', ) active_texture_index: IntProperty( - name = "Index for texture_slots", - default = 0) + name = "Index for texture_slots", + default = 0 + ) + + class WorldTextureSlot(PropertyGroup): """Declare world texture slot properties controllable in UI and translated to POV.""" + blend_factor: FloatProperty( - name="Blend", - description="Amount texture affects color progression of the " - "background", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Blend", + description="Amount texture affects color progression of the " + "background", + soft_min=0.0, soft_max=1.0, default=1.0 + ) horizon_factor: FloatProperty( - name="Horizon", - description="Amount texture affects color of the horizon" - "", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Horizon", + description="Amount texture affects color of the horizon", + soft_min=0.0, soft_max=1.0, default=1.0, + ) object: StringProperty( - name="Object", - description="Object to use for mapping with Object texture coordinates", - default="") + name="Object", + description="Object to use for mapping with Object texture coordinates", + default="", + ) texture_coords: EnumProperty( - name="Coordinates", - description="Texture coordinates used to map the texture onto the background", - items=(("VIEW", "View", "Use view vector for the texture coordinates"), - ("GLOBAL", "Global", "Use global coordinates for the texture coordinates (interior mist)"), - ("ANGMAP", "AngMap", "Use 360 degree angular coordinates, e.g. for spherical light probes"), - ("SPHERE", "Sphere", "For 360 degree panorama sky, spherical mapped, only top half"), - ("EQUIRECT", "Equirectangular", "For 360 degree panorama sky, equirectangular mapping"), - ("TUBE", "Tube", "For 360 degree panorama sky, cylindrical mapped, only top half"), - ("OBJECT", "Object", "Use linked object’s coordinates for texture coordinates")), - default="VIEW") + name="Coordinates", + description="Texture coordinates used to map the texture onto the background", + items=(("VIEW", "View", "Use view vector for the texture coordinates"), + ("GLOBAL", "Global", "Use global coordinates for the texture coordinates (interior mist)"), + ("ANGMAP", "AngMap", "Use 360 degree angular coordinates, e.g. for spherical light probes"), + ("SPHERE", "Sphere", "For 360 degree panorama sky, spherical mapped, only top half"), + ("EQUIRECT", "Equirectangular", "For 360 degree panorama sky, equirectangular mapping"), + ("TUBE", "Tube", "For 360 degree panorama sky, cylindrical mapped, only top half"), + ("OBJECT", "Object", "Use linked object’s coordinates for texture coordinates")), + default="VIEW", + ) use_map_blend: BoolProperty( - name="Blend Map", description="Affect the color progression of the background", - default=True) + name="Blend Map", + description="Affect the color progression of the background", + default=True, + ) use_map_horizon: BoolProperty( - name="Horizon Map", description="Affect the color of the horizon", - default=False) + name="Horizon Map", + description="Affect the color of the horizon", + default=False, + ) use_map_zenith_down: BoolProperty( - name="", description="Affect the color of the zenith below", - default=False) + name="", + description="Affect the color of the zenith below", + default=False, + ) use_map_zenith_up: BoolProperty( - name="Zenith Up Map", description="Affect the color of the zenith above", - default=False) + name="Zenith Up Map", + description="Affect the color of the zenith above", + default=False, + ) zenith_down_factor: FloatProperty( - name="Zenith Down", - description="Amount texture affects color of the zenith below", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Zenith Down", + description="Amount texture affects color of the zenith below", + soft_min=0.0, soft_max=1.0, default=1.0 + ) zenith_up_factor: FloatProperty( - name="Zenith Up", - description="Amount texture affects color of the zenith above", - soft_min=0.0, soft_max=1.0, default=1.0) + name="Zenith Up", + description="Amount texture affects color of the zenith above", + soft_min=0.0, soft_max=1.0, default=1.0 + ) ''' -#class WORLD_TEXTURE_SLOTS_UL_layerlist(bpy.types.UIList): +# class WORLD_TEXTURE_SLOTS_UL_layerlist(bpy.types.UIList): # texture_slots: - + class WorldTextureSlots(bpy.props.PropertyGroup): index = bpy.prop.PropertyInt(name='index') - #foo = random prop + # foo = random prop bpy.types.World.texture_slots = bpy.props.CollectionProperty(type=PropertyGroup) @@ -4429,13 +5181,13 @@ for i in range(18): # length of world texture slots ''' class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList): -# texture_slots: + # texture_slots: index: bpy.props.IntProperty(name='index') - #foo = random prop + # foo = random prop def draw_item(self, context, layout, data, item, icon, active_data, active_propname): ob = data slot = item - #ma = slot.name + # ma = slot.name # draw_item must handle the three layout types... Usually 'DEFAULT' and 'COMPACT' can share the same code. if self.layout_type in {'DEFAULT', 'COMPACT'}: # You should always start your row layout by a label (icon + text), or a non-embossed text field, @@ -4449,49 +5201,60 @@ class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList): # 'GRID' layout type should be as compact as possible (typically a single icon!). elif self.layout_type in {'GRID'}: layout.alignment = 'CENTER' - layout.label(text="", icon_value=icon) - + layout.label(text="", icon_value=icon) + ############################################################################### # Text POV properties. ############################################################################### + + class RenderPovSettingsText(PropertyGroup): + """Declare text properties to use UI as an IDE or render text snippets to POV.""" + custom_code: EnumProperty( - name="Custom Code", - description="rendered source: Both adds text at the " - "top of the exported POV file", - items=(("3dview", "View", ""), - ("text", "Text", ""), - ("both", "Both", "")), - default="text") + name="Custom Code", + description="rendered source: Both adds text at the " + "top of the exported POV file", + items=(("3dview", "View", ""), + ("text", "Text", ""), + ("both", "Both", "")), + default="text", + ) ############################################################################### # Povray Preferences. ############################################################################### + + class PovrayPreferences(AddonPreferences): + """Declare preference variables to set up POV binary.""" + bl_idname = __name__ branch_feature_set_povray: EnumProperty( - name="Feature Set", - description="Choose between official (POV-Ray) or (UberPOV) " - "development branch features to write in the pov file", - items= (('povray', 'Official POV-Ray', '','PLUGIN', 0), - ('uberpov', 'Unofficial UberPOV', '', 'PLUGIN', 1)), - default='povray' - ) + name="Feature Set", + description="Choose between official (POV-Ray) or (UberPOV) " + "development branch features to write in the pov file", + items= (('povray', 'Official POV-Ray', '','PLUGIN', 0), + ('uberpov', 'Unofficial UberPOV', '', 'PLUGIN', 1)), + default='povray', + ) filepath_povray: StringProperty( - name="Binary Location", - description="Path to renderer executable", - subtype='FILE_PATH', - ) + name="Binary Location", + description="Path to renderer executable", + subtype='FILE_PATH', + ) + docpath_povray: StringProperty( - name="Includes Location", - description="Path to Insert Menu files", - subtype='FILE_PATH', - ) + name="Includes Location", + description="Path to Insert Menu files", + subtype='FILE_PATH', + ) + def draw(self, context): layout = self.layout layout.prop(self, "branch_feature_set_povray") @@ -4502,13 +5265,13 @@ class PovrayPreferences(AddonPreferences): classes = ( PovrayPreferences, RenderPovSettingsCamera, - RenderPovSettingsLight, + RenderPovSettingsLight, RenderPovSettingsWorld, MaterialTextureSlot, WorldTextureSlot, RenderPovSettingsMaterial, MaterialRaytraceTransparency, - MaterialRaytraceMirror, + MaterialRaytraceMirror, MaterialSubsurfaceScattering, MaterialStrandSettings, RenderPovSettingsObject, @@ -4520,17 +5283,17 @@ classes = ( def register(): - #bpy.utils.register_module(__name__) #DEPRECATED Now imported from bpy.utils import register_class + # bpy.utils.register_module(__name__) # DEPRECATED Now imported from bpy.utils import register_class for cls in classes: register_class(cls) - + render.register() ui.register() primitives.register() nodes.register() - ''' + ''' bpy.types.VIEW3D_MT_add.prepend(ui.menu_func_add) bpy.types.TOPBAR_MT_file_import.append(ui.menu_func_import) bpy.types.TEXT_MT_templates.append(ui.menu_func_templates) @@ -4539,18 +5302,18 @@ def register(): bpy.types.WORLD_PT_world.prepend(ui.world_panel_func) # was used for parametric objects but made the other addon unreachable on # unregister for other tools to use created a user action call instead - #addon_utils.enable("add_mesh_extra_objects", default_set=False, persistent=True) + # addon_utils.enable("add_mesh_extra_objects", default_set=False, persistent=True) - #bpy.types.TEXTURE_PT_context_texture.prepend(TEXTURE_PT_povray_type) + # bpy.types.TEXTURE_PT_context_texture.prepend(TEXTURE_PT_povray_type) ''' bpy.types.NODE_HT_header.append(ui.menu_func_nodes) nodeitems_utils.register_node_categories("POVRAYNODES", node_categories) bpy.types.Scene.pov = PointerProperty(type=RenderPovSettingsScene) - #bpy.types.Modifier.pov = PointerProperty(type=RenderPovSettingsModifier) + # bpy.types.Modifier.pov = PointerProperty(type=RenderPovSettingsModifier) bpy.types.Material.pov_raytrace_transparency = PointerProperty(type=MaterialRaytraceTransparency) bpy.types.Material.pov = PointerProperty(type=RenderPovSettingsMaterial) bpy.types.Material.pov_subsurface_scattering = PointerProperty(type=MaterialSubsurfaceScattering) - bpy.types.Material.strand = PointerProperty(type= MaterialStrandSettings) + bpy.types.Material.strand = PointerProperty(type=MaterialStrandSettings) bpy.types.Material.pov_raytrace_mirror = PointerProperty(type=MaterialRaytraceMirror) bpy.types.Texture.pov = PointerProperty(type=RenderPovSettingsTexture) bpy.types.Object.pov = PointerProperty(type=RenderPovSettingsObject) @@ -4558,11 +5321,10 @@ def register(): bpy.types.Light.pov = PointerProperty(type=RenderPovSettingsLight) bpy.types.World.pov = PointerProperty(type=RenderPovSettingsWorld) bpy.types.Material.pov_texture_slots = CollectionProperty(type=MaterialTextureSlot) - bpy.types.World.texture_slots = CollectionProperty(type = WorldTextureSlot) + bpy.types.World.texture_slots = CollectionProperty(type=WorldTextureSlot) bpy.types.Text.pov = PointerProperty(type=RenderPovSettingsText) - def unregister(): del bpy.types.Scene.pov del bpy.types.Material.pov @@ -4570,20 +5332,20 @@ def unregister(): del bpy.types.Material.strand del bpy.types.Material.pov_raytrace_mirror del bpy.types.Material.pov_raytrace_transparency - #del bpy.types.Modifier.pov + # del bpy.types.Modifier.pov del bpy.types.Texture.pov del bpy.types.Object.pov del bpy.types.Camera.pov del bpy.types.Light.pov del bpy.types.World.pov - del bpy.types.Material.pov_texture_slots + del bpy.types.Material.pov_texture_slots del bpy.types.Text.pov nodeitems_utils.unregister_node_categories("POVRAYNODES") bpy.types.NODE_HT_header.remove(ui.menu_func_nodes) ''' - #bpy.types.TEXTURE_PT_context_texture.remove(TEXTURE_PT_povray_type) - #addon_utils.disable("add_mesh_extra_objects", default_set=False) + # bpy.types.TEXTURE_PT_context_texture.remove(TEXTURE_PT_povray_type) + # addon_utils.disable("add_mesh_extra_objects", default_set=False) bpy.types.WORLD_PT_POV_world.remove(ui.world_panel_func) bpy.types.LIGHT_PT_POV_light.remove(ui.light_panel_func) bpy.types.RENDER_PT_POV_radiosity.remove(ui.rad_panel_func) @@ -4591,7 +5353,7 @@ def unregister(): bpy.types.TOPBAR_MT_file_import.remove(ui.menu_func_import) bpy.types.VIEW3D_MT_add.remove(ui.menu_func_add) ''' - #bpy.utils.unregister_module(__name__) + # bpy.utils.unregister_module(__name__) nodes.unregister() primitives.unregister() @@ -4600,7 +5362,7 @@ def unregister(): for cls in reversed(classes): unregister_class(cls) - + if __name__ == "__main__": diff --git a/render_povray/primitives.py b/render_povray/primitives.py index c1e37ab3..4d109958 100644 --- a/render_povray/primitives.py +++ b/render_povray/primitives.py @@ -1468,10 +1468,10 @@ def pov_parametric_define(context, op, ob): bpy.ops.object.mode_set(mode="EDIT") bpy.ops.mesh.hide(unselected=False) bpy.ops.object.mode_set(mode="OBJECT") - + class POVRAY_OT_parametric_add(bpy.types.Operator): """Add the representation of POV parametric surfaces using pov_parametric_define() function.""" - + bl_idname = "pov.addparametric" bl_label = "Parametric" bl_description = "Add Paramertic" @@ -1517,7 +1517,7 @@ class POVRAY_OT_parametric_update(bpy.types.Operator): Delete its previous proxy geometry and rerun pov_parametric_define() function with the new parameters""" - + bl_idname = "pov.parametric_update" bl_label = "Update" bl_description = "Update parametric object" diff --git a/render_povray/render.py b/render_povray/render.py index ec5b6689..6af0b692 100644 --- a/render_povray/render.py +++ b/render_povray/render.py @@ -170,7 +170,7 @@ def string_strip_hyphen(name): def safety(name, Level): """append suffix characters to names of various material declinations. - + Material declinations are necessary to POV syntax and used in shading.py by the povHasnoSpecularMaps function to create the finish map trick and the suffixes avoid name collisions. @@ -180,7 +180,7 @@ def safety(name, Level): Level=1 is for texture with No specular nor Mirror reflection Level=2 is for texture with translation of spec and mir levels for when no map influences them - Level=3 is for texture with Maximum Spec and Mirror + Level=3 is for texture with Maximum Spec and Mirror """ try: @@ -309,7 +309,7 @@ def write_global_setting(scene,file): def write_object_modifiers(scene,ob,File): """Translate some object level POV statements from Blender UI to POV syntax and write to exported file """ - + # Maybe return that string to be added instead of directly written. '''XXX WIP @@ -410,7 +410,7 @@ def write_pov(filename, scene=None, info_callback=None): tab = setTab(scene.pov.indentation_character, scene.pov.indentation_spaces) if not scene.pov.tempfiles_enable: def tabWrite(str_o): - """Indent POV syntax from brackets levels and write to exported file """ + """Indent POV syntax from brackets levels and write to exported file """ global tabLevel brackets = str_o.count("{") - str_o.count("}") + str_o.count("[") - str_o.count("]") if brackets < 0: @@ -425,12 +425,12 @@ def write_pov(filename, scene=None, info_callback=None): tabLevel = tabLevel + brackets else: def tabWrite(str_o): - """write directly to exported file if user checked autonamed temp files (faster).""" + """write directly to exported file if user checked autonamed temp files (faster).""" file.write(str_o) def uniqueName(name, nameSeq): - """Increment any generated POV name that could get identical to avoid collisions""" + """Increment any generated POV name that could get identical to avoid collisions""" if name not in nameSeq: name = string_strip_hyphen(name) @@ -465,8 +465,8 @@ def write_pov(filename, scene=None, info_callback=None): def writeObjectMaterial(material, ob): """Translate some object level material from Blender UI (VS data level) - to POV interior{} syntax and write it to exported file """ - + to POV interior{} syntax and write it to exported file """ + # DH - modified some variables to be function local, avoiding RNA write # this should be checked to see if it is functionally correct @@ -484,7 +484,7 @@ def write_pov(filename, scene=None, info_callback=None): tabWrite("ior %.6f\n" % material.pov_raytrace_transparency.ior) elif material.pov.transparency_method=='Z_TRANSPARENCY': tabWrite("interior {\n") - tabWrite("ior 1.0\n") + tabWrite("ior 1.0\n") else: tabWrite("interior {\n") tabWrite("ior %.6f\n" % material.pov_raytrace_transparency.ior) @@ -3606,7 +3606,7 @@ def write_pov(filename, scene=None, info_callback=None): tabWrite("}\n") def exportCustomCode(): - """write all POV user defined custom code to exported file """ + """write all POV user defined custom code to exported file """ # Write CurrentAnimation Frame for use in Custom POV Code file.write("#declare CURFRAMENUM = %d;\n" % bpy.context.scene.frame_current) #Change path and uncomment to add an animated include file by hand: @@ -3828,7 +3828,7 @@ class PovrayRender(bpy.types.RenderEngine): @staticmethod def _locate_binary(): - """Identify POV engine""" + """Identify POV engine""" addon_prefs = bpy.context.preferences.addons[__package__].preferences # Use the system preference if its set. @@ -3879,7 +3879,7 @@ class PovrayRender(bpy.types.RenderEngine): return "" def _export(self, depsgraph, povPath, renderImagePath): - """gather all necessary output files paths user defined and auto generated and export there""" + """gather all necessary output files paths user defined and auto generated and export there""" import tempfile scene = bpy.context.scene if scene.pov.tempfiles_enable: @@ -3989,7 +3989,7 @@ class PovrayRender(bpy.types.RenderEngine): # and Windows does not know how to delete a file in use! time.sleep(self.DELAY) def render(self, depsgraph): - """Export necessary files from text editor and render image.""" + """Export necessary files from text editor and render image.""" import tempfile scene = bpy.context.scene r = scene.render diff --git a/render_povray/shading.py b/render_povray/shading.py index 7c229ecb..07898245 100644 --- a/render_povray/shading.py +++ b/render_povray/shading.py @@ -249,13 +249,13 @@ def writeMaterial(using_uberpov, DEF_MAT_NAME, scene, tabWrite, safety, comments for t in material.pov_texture_slots: idx += 1 # index = material.pov.active_texture_index - slot = material.pov_texture_slots[idx] # [index] + slot = material.pov_texture_slots[idx] # [index] povtex = slot.name - tex = bpy.data.textures[povtex] - + tex = bpy.data.textures[povtex] + if t and t.use and tex is not None: - - + + if (tex.type == 'IMAGE' and tex.image) or tex.type != 'IMAGE': #validPath if(t and t.use and @@ -272,10 +272,10 @@ def writeMaterial(using_uberpov, DEF_MAT_NAME, scene, tabWrite, safety, comments def exportPattern(texture, string_strip_hyphen): """Translate Blender procedural textures to POV patterns and write to pov file. - + Function Patterns can be used to better access sub components of a pattern like grey values for influence mapping""" - + tex=texture pat = tex.pov PATname = "PAT_%s"%string_strip_hyphen(bpy.path.clean_name(tex.name)) @@ -761,7 +761,7 @@ def writeTextureInfluence(mater, materialNames, LocalMaterialNames, path_image, imageFormat, imgMap, imgMapTransforms, tabWrite, comments, string_strip_hyphen, safety, col, os, preview_dir, unpacked_images): """Translate Blender texture influences to various POV texture tricks and write to pov file.""" - + material_finish = materialNames[mater.name] if mater.pov.use_transparency: trans = 1.0 - mater.pov.alpha @@ -790,10 +790,10 @@ def writeTextureInfluence(mater, materialNames, LocalMaterialNames, path_image, for t in mater.pov_texture_slots: idx += 1 # index = mater.pov.active_texture_index - slot = mater.pov_texture_slots[idx] # [index] + slot = mater.pov_texture_slots[idx] # [index] povtex = slot.name tex = bpy.data.textures[povtex] - + if t and (t.use and (tex is not None)): # 'NONE' ('NONE' type texture is different from no texture covered above) if (tex.type == 'NONE' and tex.pov.tex_pattern_type == 'emulator'): @@ -1185,9 +1185,9 @@ def writeTextureInfluence(mater, materialNames, LocalMaterialNames, path_image, for t in mater.pov_texture_slots: idx += 1 # index = mater.pov.active_texture_index - slot = mater.pov_texture_slots[idx] # [index] + slot = mater.pov_texture_slots[idx] # [index] povtex = slot.name - tex = bpy.data.textures[povtex] + tex = bpy.data.textures[povtex] if(t and t.use and ((tex.type == 'IMAGE' and tex.image) or tex.type != 'IMAGE') and (t.use_map_specular or t.use_map_raymir)): # Specular mapped textures would conflict with colored specular diff --git a/render_povray/ui.py b/render_povray/ui.py index 94092121..33d2daa4 100644 --- a/render_povray/ui.py +++ b/render_povray/ui.py @@ -192,8 +192,8 @@ for member in dir(properties_material): subclass = getattr(properties_material, member) try: # mat=bpy.context.active_object.active_material - # if (mat and mat.pov.type == "SURFACE" - # and not (mat.pov.material_use_nodes or mat.use_nodes)): + # if (mat and mat.pov.type == "SURFACE" + # and not (mat.pov.material_use_nodes or mat.use_nodes)): # and (engine in cls.COMPAT_ENGINES)) if subclasses were sorted subclass.COMPAT_ENGINES.add('POVRAY_RENDER') except: @@ -272,7 +272,7 @@ class WORLD_OT_POV_add_preset(AddPresetBase, Operator): # where to store the preset preset_subdir = "pov/world" - + def check_material(mat): if mat is not None: if mat.use_nodes: @@ -287,10 +287,10 @@ def simple_material(mat): if (mat is not None) and (not mat.use_nodes): return True return False - + def check_add_mesh_extra_objects(): """Test if Add mesh extra objects addon is activated - + This addon is currently used to generate the proxy for POV parametric surface which is almost the same priciple as its Math xyz surface """ @@ -300,10 +300,10 @@ def check_add_mesh_extra_objects(): def locate_docpath(): """POV can be installed with some include files. - + Get their path as defined in user preferences or registry keys for the user to be able to invoke them.""" - + addon_prefs = bpy.context.preferences.addons[__package__].preferences # Use the system preference if its set. pov_documents = addon_prefs.docpath_povray @@ -338,7 +338,7 @@ def locate_docpath(): def pov_context_tex_datablock(context): """Texture context type recreated as deprecated in blender 2.8""" - + idblock = context.brush if idblock and bpy.context.scene.texture_context == 'OTHER': return idblock @@ -351,7 +351,7 @@ def pov_context_tex_datablock(context): idblock = context.world if idblock: return idblock - + idblock = context.light if idblock: return idblock @@ -364,11 +364,11 @@ def pov_context_tex_datablock(context): idblock = context.line_style if idblock: return idblock - + class RenderButtonsPanel(): """Use this class to define buttons from the render tab of properties window.""" - + bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "render" @@ -670,7 +670,7 @@ class LIGHT_PT_POV_sunsky(PovLampButtonsPanel, Panel): class LIGHT_PT_POV_shadow(PovLampButtonsPanel, Panel): bl_label = "Shadow" COMPAT_ENGINES = {'POVRAY_RENDER'} - + @classmethod def poll(cls, context): lamp = context.lamp @@ -683,7 +683,7 @@ class LIGHT_PT_POV_shadow(PovLampButtonsPanel, Panel): lamp = context.lamp layout.row().prop(lamp, "shadow_method", expand=True) - + split = layout.split() col = split.column() @@ -746,7 +746,7 @@ class LIGHT_PT_POV_shadow(PovLampButtonsPanel, Panel): elif lamp.shape == 'RECTANGLE': sub.prop(lamp, "shadow_ray_samples_x", text="Samples X") sub.prop(lamp, "shadow_ray_samples_y", text="Samples Y") - + ''' if lamp.shadow_method == 'NOSHADOW' and lamp.type == 'AREA': split = layout.split() @@ -985,7 +985,7 @@ class WORLD_PT_POV_mist(WorldButtonsPanel, Panel): col.prop(world.mist_settings, "height") layout.prop(world.mist_settings, "falloff") - + class RENDER_PT_POV_export_settings(RenderButtonsPanel, Panel): """Use this class to define pov ini settingss buttons.""" @@ -1058,11 +1058,11 @@ class RENDER_PT_POV_render_settings(RenderButtonsPanel, Panel): if sys.platform[:3] != "win": layout.prop(scene.pov, "sdl_window_enable", text="POV-Ray SDL Window") - + col = layout.column() col.label(text="Main Path Tracing:") col.prop(scene.pov, "max_trace_level", text="Ray Depth") - align = True + align = True layout.active = scene.pov.global_settings_advanced layout.prop(scene.pov,"charset") row = layout.row(align = align) @@ -1077,15 +1077,15 @@ class RENDER_PT_POV_render_settings(RenderButtonsPanel, Panel): row.prop(scene.pov,"number_of_waves") row = layout.row(align = align) row.prop(scene.pov,"noise_generator") - + split = layout.split() split.label(text="Shading:") split = layout.split() - + row = split.row(align = align) row.prop(scene.pov, "use_shadows") - row.prop(scene.pov, "alpha_mode") - + row.prop(scene.pov, "alpha_mode") + class RENDER_PT_POV_photons(RenderButtonsPanel, Panel): """Use this class to define pov photons buttons.""" @@ -1473,7 +1473,7 @@ class MATERIAL_PT_POV_sss(MaterialButtonsPanel, Panel): sub.prop(sss, "back") col.separator() col.prop(sss, "error_threshold", text="Error") - + class MATERIAL_PT_POV_activate_node(MaterialButtonsPanel, Panel): """Use this class to define an activate pov nodes button.""" @@ -1558,7 +1558,7 @@ class MATERIAL_PT_POV_mirror(MaterialButtonsPanel, Panel): bl_idname = "MATERIAL_PT_POV_raytrace_mirror" COMPAT_ENGINES = {'POVRAY_RENDER'} - + @classmethod def poll(cls, context): mat = context.material @@ -1677,12 +1677,12 @@ class MATERIAL_PT_POV_transp(MaterialButtonsPanel, Panel): sub.active = rayt.gloss_factor < 1.0 sub.prop(rayt, "gloss_threshold", text="Threshold") sub.prop(rayt, "gloss_samples", text="Samples") - + class MATERIAL_PT_POV_reflection(MaterialButtonsPanel, Panel): """Use this class to define more pov specific reflectivity buttons.""" bl_label = "POV-Ray Reflection" - bl_parent_id = "MATERIAL_PT_POV_raytrace_mirror" + bl_parent_id = "MATERIAL_PT_POV_raytrace_mirror" COMPAT_ENGINES = {'POVRAY_RENDER'} @classmethod @@ -1718,8 +1718,8 @@ class MATERIAL_PT_POV_reflection(MaterialButtonsPanel, Panel): #group some native Blender (SSS) and POV (Fade)settings under such a parent panel? class MATERIAL_PT_POV_interior(MaterialButtonsPanel, Panel): bl_label = "POV-Ray Interior" - bl_idname = "material.pov_interior" - #bl_parent_id = "material.absorption" + bl_idname = "material.pov_interior" + #bl_parent_id = "material.absorption" COMPAT_ENGINES = {'POVRAY_RENDER'} @classmethod def poll(cls, context): @@ -1731,14 +1731,14 @@ class MATERIAL_PT_POV_interior(MaterialButtonsPanel, Panel): def draw_header(self, context): mat = context.material -''' +''' class MATERIAL_PT_POV_fade_color(MaterialButtonsPanel, Panel): """Use this class to define pov fading (absorption) color buttons.""" bl_label = "POV-Ray Absorption" COMPAT_ENGINES = {'POVRAY_RENDER'} - #bl_parent_id = "material.pov_interior" + #bl_parent_id = "material.pov_interior" @classmethod def poll(cls, context): @@ -1859,7 +1859,7 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, Panel): sub.label(text="Surface diffuse:") sub = col.column() sub.prop(tan, "blend_distance", text="Distance") - + class MATERIAL_PT_POV_replacement_text(MaterialButtonsPanel, Panel): """Use this class to define pov custom code declared name field.""" @@ -1920,8 +1920,8 @@ class MATERIAL_TEXTURE_SLOTS_UL_List(UIList): material = context.material#.pov active_data = material #tex = context.texture #may be needed later? - - + + # We could write some code to decide which icon to use here... custom_icon = 'TEXTURE' @@ -1932,7 +1932,7 @@ class MATERIAL_TEXTURE_SLOTS_UL_List(UIList): elif self.layout_type in {'GRID'}: layout.alignment = 'CENTER' layout.label("", icon = custom_icon) -''' +''' class WORLD_TEXTURE_SLOTS_UL_List(UIList): """Use this class to show pov texture slots list.""" # XXX Not used yet @@ -1943,8 +1943,8 @@ class WORLD_TEXTURE_SLOTS_UL_List(UIList): world = context.world#.pov active_data = world.pov #tex = context.texture #may be needed later? - - + + # We could write some code to decide which icon to use here... custom_icon = 'TEXTURE' @@ -1955,7 +1955,7 @@ class WORLD_TEXTURE_SLOTS_UL_List(UIList): elif self.layout_type in {'GRID'}: layout.alignment = 'CENTER' layout.label("", icon = custom_icon) - + class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList): """Use this class to show pov texture slots list.""" @@ -1980,7 +1980,7 @@ class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList): elif self.layout_type in {'GRID'}: layout.alignment = 'CENTER' layout.label(text="", icon_value=icon) - + class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): """Use this class to show pov texture context buttons.""" @@ -1991,7 +1991,7 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): @classmethod def poll(cls, context): engine = context.scene.render.engine - return (engine in cls.COMPAT_ENGINES) + return (engine in cls.COMPAT_ENGINES) # if not (hasattr(context, "texture_slot") or hasattr(context, "texture_node")): # return False return ((context.material or @@ -1999,14 +1999,14 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): context.light or context.texture or context.line_style or - context.particle_system or + context.particle_system or isinstance(context.space_data.pin_id, ParticleSettings) or context.texture_user) and (engine in cls.COMPAT_ENGINES)) def draw(self, context): layout = self.layout - + scene = context.scene layout.prop(scene, "texture_context", expand=True) if scene.texture_context == 'MATERIAL': @@ -2017,7 +2017,7 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): col.operator("pov.textureslotadd",icon='ADD',text='') col.operator("pov.textureslotremove",icon='REMOVE',text='') col.separator() - + if mat.pov_texture_slots: index = mat.pov.active_texture_index slot = mat.pov_texture_slots[index] @@ -2028,37 +2028,37 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): layout.prop_search(slot,'texture_search',bpy.data,'textures',text='') # else: # for i in range(18): # length of material texture slots - # mat.pov_texture_slots.add() + # mat.pov_texture_slots.add() -# Commented out below is a reminder of what existed in Blender Internal +# Commented out below is a reminder of what existed in Blender Internal # attributes need to be recreated ''' slot = getattr(context, "texture_slot", None) node = getattr(context, "texture_node", None) space = context.space_data - - #attempt at replacing removed space_data + + #attempt at replacing removed space_data mtl = getattr(context, "material", None) if mtl != None: - spacedependant = mtl + spacedependant = mtl wld = getattr(context, "world", None) if wld != None: - spacedependant = wld + spacedependant = wld lgt = getattr(context, "light", None) if lgt != None: - spacedependant = lgt + spacedependant = lgt #idblock = context.particle_system.settings - + tex = getattr(context, "texture", None) if tex != None: - spacedependant = tex + spacedependant = tex + - scene = context.scene - idblock = scene.pov#pov_context_tex_datablock(context) + idblock = scene.pov#pov_context_tex_datablock(context) pin_id = space.pin_id #spacedependant.use_limited_texture_context = True @@ -2100,7 +2100,7 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): tex_collection = (pin_id is None) and (node is None) and (spacedependant.texture_context not in ('LINESTYLE','OTHER')) if tex_collection: - + pov = getattr(context, "pov", None) active_texture_index = getattr(spacedependant, "active_texture_index", None) print (pov) @@ -2110,10 +2110,10 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): row.template_list("TEXTURE_UL_texslots", "", idblock, "texture_slots", idblock, "active_texture_index", rows=2, maxrows=16, type="DEFAULT") - + # row.template_list("WORLD_TEXTURE_SLOTS_UL_List", "texture_slots", world, # world.texture_slots, world, "active_texture_index", rows=2) - + col = row.column(align=True) col.operator("texture.slot_move", text="", icon='TRIA_UP').type = 'UP' col.operator("texture.slot_move", text="", icon='TRIA_DOWN').type = 'DOWN' @@ -2214,7 +2214,7 @@ class MATERIAL_OT_POV_texture_slot_remove(Operator): return {'FINISHED'} class TextureSlotPanel(TextureButtonsPanel): - """Use this class to show pov texture slots panel.""" + """Use this class to show pov texture slots panel.""" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -2245,8 +2245,8 @@ class TEXTURE_PT_POV_type(TextureButtonsPanel, Panel): # row = layout.row() # row.template_list("WORLD_TEXTURE_SLOTS_UL_List", "texture_slots", world, # world.texture_slots, world, "active_texture_index") - - + + class TEXTURE_PT_POV_preview(TextureButtonsPanel, Panel): """Use this class to define pov texture preview panel.""" @@ -2527,7 +2527,7 @@ class TEXTURE_PT_POV_influence(TextureSlotPanel, Panel): if isinstance(idblock, Material): split = layout.split() - col = split.column() + col = split.column() if idblock.pov.type in {'SURFACE', 'WIRE'}: split = layout.split() @@ -3242,11 +3242,11 @@ class CAMERA_PT_POV_cam_dof(CameraDataButtonsPanel, Panel): col = flow.column() col.label(text="F-Stop value will export as") col.label(text="POV aperture : " + "%.3f" % (1/cam.dof.aperture_fstop*1000)) - + col = flow.column() col.prop(cam.pov, "dof_samples_min") col.prop(cam.pov, "dof_samples_max") - col.prop(cam.pov, "dof_variance") + col.prop(cam.pov, "dof_variance") col.prop(cam.pov, "dof_confidence") @@ -3296,7 +3296,7 @@ class CAMERA_PT_POV_replacement_text(CameraDataButtonsPanel, Panel): class TEXT_OT_POV_insert(Operator): """Use this class to create blender text editor operator to insert pov snippets like other pov IDEs.""" - + bl_idname = "text.povray_insert" bl_label = "Insert" @@ -3416,7 +3416,7 @@ classes = ( WORLD_MT_POV_presets, WORLD_OT_POV_add_preset, WORLD_TEXTURE_SLOTS_UL_List, - WORLD_PT_POV_mist, + WORLD_PT_POV_mist, #RenderButtonsPanel, #ModifierButtonsPanel, #MaterialButtonsPanel, @@ -3462,7 +3462,7 @@ classes = ( MATERIAL_PT_POV_caustics, MATERIAL_PT_POV_replacement_text, TEXTURE_MT_POV_specials, - TEXTURE_PT_POV_context_texture, + TEXTURE_PT_POV_context_texture, TEXTURE_PT_POV_type, TEXTURE_PT_POV_preview, TEXTURE_PT_POV_parameters, @@ -3490,7 +3490,7 @@ classes = ( # TEXTURE_PT_context, #TEXTURE_PT_POV_povray_texture_slots, TEXTURE_UL_POV_texture_slots, - MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist, + MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist, MATERIAL_OT_POV_texture_slot_add, MATERIAL_OT_POV_texture_slot_remove, TEXTURE_PT_POV_influence diff --git a/render_povray/update_files.py b/render_povray/update_files.py index e0d4495d..8b89c1f2 100644 --- a/render_povray/update_files.py +++ b/render_povray/update_files.py @@ -17,7 +17,7 @@ # ##### END GPL LICENSE BLOCK ##### # -"""update new variables to values from older API. +"""update new variables to values from older API. It does not have a UI and used to be found with F3 search field. This file needs an update.""" -- cgit v1.2.3