Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'render_povray/texturing_properties.py')
-rwxr-xr-xrender_povray/texturing_properties.py1137
1 files changed, 1137 insertions, 0 deletions
diff --git a/render_povray/texturing_properties.py b/render_povray/texturing_properties.py
new file mode 100755
index 00000000..bb89ee02
--- /dev/null
+++ b/render_povray/texturing_properties.py
@@ -0,0 +1,1137 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+"""Declare texturing properties controllable in UI."""
+
+import bpy
+from bpy.utils import register_class, unregister_class
+from bpy.types import PropertyGroup
+from bpy.props import (
+ FloatVectorProperty,
+ StringProperty,
+ BoolProperty,
+ IntProperty,
+ FloatProperty,
+ EnumProperty,
+ PointerProperty,
+ CollectionProperty,
+)
+
+from .shading_properties import active_texture_name_from_uilist, active_texture_name_from_search
+
+###############################################################################
+# Texture slots (Material context) exported as POV texture 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",)
+
+ # Adding a "real" texture datablock as property is not possible
+ # (or at least not easy through a dynamically populated EnumProperty).
+ # That's why we'll use a prop_search() UILayout function in texturing_gui.py.
+ # So we'll assign the name of the needed texture datablock to the below StringProperty.
+ texture: StringProperty(update=active_texture_name_from_uilist)
+ # and use another temporary StringProperty to change the linked data
+ texture_search: StringProperty(
+ name="", update=active_texture_name_from_search, description="Browse Texture to be linked"
+ )
+
+ alpha_factor: FloatProperty(
+ name="Alpha", description="Amount texture affects alpha", default=1.0
+ )
+
+ ambient_factor: FloatProperty(
+ name="", description="Amount texture affects ambient", default=1.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",
+ )
+
+ 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",
+ )
+
+ density_factor: FloatProperty(
+ name="", description="Amount texture affects density", default=1.0
+ )
+
+ diffuse_color_factor: FloatProperty(
+ name="", description="Amount texture affects diffuse color", default=1.0
+ )
+
+ diffuse_factor: FloatProperty(
+ name="", description="Amount texture affects diffuse reflectivity", default=1.0
+ )
+
+ displacement_factor: FloatProperty(
+ name="", description="Amount texture displaces the surface", default=0.2
+ )
+
+ emission_color_factor: FloatProperty(
+ name="", description="Amount texture affects emission color", default=1.0
+ )
+
+ emission_factor: FloatProperty(
+ name="", description="Amount texture affects emission", default=1.0
+ )
+
+ emit_factor: FloatProperty(name="", description="Amount texture affects emission", default=1.0)
+
+ hardness_factor: FloatProperty(
+ name="", description="Amount texture affects hardness", default=1.0
+ )
+
+ mapping: EnumProperty(
+ 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",
+ )
+
+ mapping_y: EnumProperty(
+ name="",
+ description="",
+ items=(("NONE", "", ""), ("X", "", ""), ("Y", "", ""), ("Z", "", "")),
+ default="NONE",
+ )
+
+ mapping_z: EnumProperty(
+ name="",
+ description="",
+ items=(("NONE", "", ""), ("X", "", ""), ("Y", "", ""), ("Z", "", "")),
+ default="NONE",
+ )
+
+ mirror_factor: FloatProperty(
+ name="", description="Amount texture affects mirror color", default=1.0
+ )
+
+ normal_factor: FloatProperty(
+ name="", description="Amount texture affects normal values", default=1.0
+ )
+
+ normal_map_space: EnumProperty(
+ 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="",
+ )
+
+ raymir_factor: FloatProperty(
+ name="", description="Amount texture affects ray mirror", default=1.0
+ )
+
+ reflection_color_factor: FloatProperty(
+ name="", description="Amount texture affects color of out-scattered light", default=1.0
+ )
+
+ reflection_factor: FloatProperty(
+ name="", description="Amount texture affects brightness of out-scattered light", default=1.0
+ )
+
+ scattering_factor: FloatProperty(
+ name="", description="Amount texture affects scattering", default=1.0
+ )
+
+ specular_color_factor: FloatProperty(
+ name="", description="Amount texture affects specular color", default=1.0
+ )
+
+ specular_factor: FloatProperty(
+ name="", description="Amount texture affects specular reflectivity", default=1.0
+ )
+
+ offset: FloatVectorProperty(
+ name="Offset",
+ description=("Fine tune of the texture mapping X, Y and Z locations "),
+ precision=4,
+ step=0.1,
+ soft_min=-100.0,
+ soft_max=100.0,
+ default=(0.0, 0.0, 0.0),
+ options={"ANIMATABLE"},
+ subtype="TRANSLATION",
+ )
+
+ scale: FloatVectorProperty(
+ name="Size",
+ subtype="XYZ",
+ size=3,
+ description="Set scaling for the texture’s X, Y and Z sizes ",
+ precision=4,
+ step=0.1,
+ soft_min=-100.0,
+ soft_max=100.0,
+ default=(1.0, 1.0, 1.0),
+ options={"ANIMATABLE"},
+ )
+
+ 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",
+ )
+
+ translucency_factor: FloatProperty(
+ name="", description="Amount texture affects translucency", default=1.0
+ )
+
+ transmission_color_factor: FloatProperty(
+ name="",
+ description="Amount texture affects result color after light has been scattered/absorbed",
+ default=1.0,
+ )
+
+ use: BoolProperty(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,
+ )
+
+ use_from_original: BoolProperty(
+ name="",
+ description="Dupli’s derive their object coordinates from the "
+ "original objects transformation",
+ default=False,
+ )
+
+ use_interpolation: BoolProperty(
+ name="", description="Interpolates pixels using selected filter ", default=False
+ )
+
+ use_map_alpha: BoolProperty(
+ 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
+ )
+
+ use_map_color_diffuse: BoolProperty(
+ name="",
+ description="Causes the texture to affect basic color of the material",
+ default=True,
+ )
+
+ use_map_color_emission: BoolProperty(
+ 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,
+ )
+
+ use_map_color_spec: BoolProperty(
+ 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,
+ )
+
+ use_map_density: BoolProperty(
+ 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,
+ )
+
+ use_map_displacement: BoolProperty(
+ 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
+ )
+
+ use_map_emit: BoolProperty(
+ 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
+ )
+
+ use_map_mirror: BoolProperty(
+ 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
+ )
+
+ use_map_raymir: BoolProperty(
+ 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,
+ )
+
+ use_map_scatter: BoolProperty(
+ 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,
+ )
+
+ use_map_translucency: BoolProperty(
+ 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,
+ )
+
+ uv_layer: StringProperty(
+ 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,
+ )
+
+ #######################################
+
+ 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,
+ )
+
+ horizon_factor: FloatProperty(
+ 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="",
+ )
+
+ 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",
+ )
+
+ use_map_blend: BoolProperty(
+ 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
+ )
+
+ use_map_zenith_down: BoolProperty(
+ 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
+ )
+
+ 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,
+ )
+
+ 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,
+ )
+
+
+###############################################################################
+# Texture slots (World context) exported as POV texture properties.
+###############################################################################
+class WorldTextureSlot(PropertyGroup):
+ """Declare world texture slot level properties for UI and translated to POV."""
+
+ bl_idname = ("pov_texture_slots",)
+ bl_description = ("Texture_slots from Blender-2.79",)
+
+ # Adding a "real" texture datablock as property is not possible
+ # (or at least not easy through a dynamically populated EnumProperty).
+ # That's why we'll use a prop_search() UILayout function in ui.py.
+ # So we'll assign the name of the needed texture datablock to the below StringProperty.
+ texture: StringProperty(update=active_texture_name_from_uilist)
+ # and use another temporary StringProperty to change the linked data
+ texture_search: StringProperty(
+ name="", update=active_texture_name_from_search, description="Browse Texture to be linked"
+ )
+
+ 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,
+ )
+
+ horizon_factor: FloatProperty(
+ 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="",
+ )
+
+ offset: FloatVectorProperty(
+ name="Offset",
+ description=("Fine tune of the texture mapping X, Y and Z locations "),
+ precision=4,
+ step=0.1,
+ soft_min=-100.0,
+ soft_max=100.0,
+ default=(0.0, 0.0, 0.0),
+ options={"ANIMATABLE"},
+ subtype="TRANSLATION",
+ )
+
+ scale: FloatVectorProperty(
+ name="Size",
+ subtype="XYZ",
+ size=3,
+ description="Set scaling for the texture’s X, Y and Z sizes ",
+ precision=4,
+ step=0.1,
+ soft_min=-100.0,
+ soft_max=100.0,
+ default=(1.0, 1.0, 1.0),
+ options={"ANIMATABLE"},
+ )
+
+ 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",
+ )
+
+ use_map_blend: BoolProperty(
+ 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
+ )
+
+ use_map_zenith_down: BoolProperty(
+ 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
+ )
+
+ 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,
+ )
+
+ 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,
+ )
+
+
+###############################################################################
+# Space properties from removed former Blender Internal
+###############################################################################
+
+# added below at superclass level so as to be available in World, Material,
+# and 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,
+)
+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",
+)
+# bpy.types.ID.active_texture_index = IntProperty(
+# name = "Index for texture_slots",
+# default = 0,
+# )
+
+
+###############################################################################
+# Texture POV properties.
+###############################################################################
+
+
+class RenderPovSettingsTexture(PropertyGroup):
+ """Declare texture level properties controllable in UI and translated to POV."""
+
+ # former Space properties from removed Blender Internal
+ active_texture_index: IntProperty(name="Index for texture_slots", min=0, max=17, default=0)
+
+ use_limited_texture_context: BoolProperty(
+ 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
+ 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,
+ )
+
+ 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,
+ )
+
+ ##################################CustomPOV Code############################
+ # 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", "Blender Type Emulator", "", "SCRIPTPLUGINS", 37),
+ ),
+ default="emulator",
+ )
+
+ magnet_style: EnumProperty(
+ name="Magnet style",
+ description="magnet or julia",
+ items=(("mandel", "Mandelbrot", ""), ("julia", "Julia", "")),
+ default="julia",
+ )
+
+ magnet_type: IntProperty(name="Magnet_type", description="1 or 2", min=1, max=2, default=2)
+
+ warp_types: EnumProperty(
+ name="Warp Types",
+ description="Select the type of warp",
+ items=(
+ ("PLANAR", "Planar", ""),
+ ("CUBIC", "Cubic", ""),
+ ("SPHERICAL", "Spherical", ""),
+ ("TOROIDAL", "Toroidal", ""),
+ ("CYLINDRICAL", "Cylindrical", ""),
+ ("NONE", "None", "No indentation"),
+ ),
+ default="NONE",
+ )
+
+ warp_orientation: EnumProperty(
+ name="Warp Orientation",
+ description="Select the orientation of warp",
+ items=(("x", "X", ""), ("y", "Y", ""), ("z", "Z", "")),
+ default="y",
+ )
+
+ wave_type: EnumProperty(
+ name="Waves type",
+ description="Select the type of waves",
+ items=(
+ ("ramp", "Ramp", ""),
+ ("sine", "Sine", ""),
+ ("scallop", "Scallop", ""),
+ ("cubic", "Cubic", ""),
+ ("poly", "Poly", ""),
+ ("triangle", "Triangle", ""),
+ ),
+ default="ramp",
+ )
+
+ gen_noise: IntProperty(
+ name="Noise Generators", description="Noise Generators", min=1, max=3, default=1
+ )
+
+ warp_dist_exp: FloatProperty(
+ name="Distance exponent", description="Distance exponent", min=0.0, max=100.0, default=1.0
+ )
+
+ warp_tor_major_radius: FloatProperty(
+ name="Major radius",
+ description="Torus is distance from major radius",
+ min=0.0,
+ max=5.0,
+ default=1.0,
+ )
+
+ warp_turbulence_x: FloatProperty(
+ name="Turbulence X", description="Turbulence X", min=0.0, max=5.0, default=0.0
+ )
+
+ warp_turbulence_y: FloatProperty(
+ name="Turbulence Y", description="Turbulence Y", min=0.0, max=5.0, default=0.0
+ )
+
+ warp_turbulence_z: FloatProperty(
+ name="Turbulence Z", description="Turbulence Z", min=0.0, max=5.0, default=0.0
+ )
+
+ modifier_octaves: IntProperty(
+ name="Turbulence octaves", description="Turbulence octaves", min=1, max=10, default=1
+ )
+
+ modifier_lambda: FloatProperty(
+ name="Turbulence lambda", description="Turbulence lambda", min=0.0, max=5.0, default=1.00
+ )
+
+ modifier_omega: FloatProperty(
+ name="Turbulence omega", description="Turbulence omega", min=0.0, max=10.0, default=1.00
+ )
+
+ modifier_phase: FloatProperty(
+ name="Phase",
+ description="The phase value causes the map entries to be shifted so that the map "
+ "starts and ends at a different place",
+ min=0.0,
+ max=2.0,
+ default=0.0,
+ )
+
+ modifier_frequency: FloatProperty(
+ name="Frequency",
+ description="The frequency keyword adjusts the number of times that a color map "
+ "repeats over one cycle of a pattern",
+ min=0.0,
+ max=25.0,
+ default=2.0,
+ )
+
+ modifier_turbulence: FloatProperty(
+ name="Turbulence", description="Turbulence", min=0.0, max=5.0, default=2.0
+ )
+
+ modifier_numbers: IntProperty(name="Numbers", description="Numbers", min=1, max=27, default=2)
+
+ modifier_control0: IntProperty(
+ name="Control0", description="Control0", min=0, max=100, default=1
+ )
+
+ modifier_control1: IntProperty(
+ name="Control1", description="Control1", min=0, max=100, default=1
+ )
+
+ brick_size_x: FloatProperty(
+ name="Brick size x", description="", min=0.0000, max=1.0000, default=0.2500
+ )
+
+ brick_size_y: FloatProperty(
+ name="Brick size y", description="", min=0.0000, max=1.0000, default=0.0525
+ )
+
+ brick_size_z: FloatProperty(
+ name="Brick size z", description="", min=0.0000, max=1.0000, default=0.1250
+ )
+
+ brick_mortar: FloatProperty(
+ name="Mortar", description="Mortar", min=0.000, max=1.500, default=0.01
+ )
+
+ julia_complex_1: FloatProperty(
+ name="Julia Complex 1", description="", min=0.000, max=1.500, default=0.360
+ )
+
+ julia_complex_2: FloatProperty(
+ name="Julia Complex 2", description="", min=0.000, max=1.500, default=0.250
+ )
+
+ f_iter: IntProperty(name="Fractal Iteration", description="", min=0, max=100, default=20)
+
+ f_exponent: IntProperty(name="Fractal Exponent", description="", min=2, max=33, default=2)
+
+ f_ior: IntProperty(name="Fractal Interior", description="", min=1, max=6, default=1)
+
+ f_ior_fac: FloatProperty(
+ name="Fractal Interior Factor", description="", min=0.0, max=10.0, default=1.0
+ )
+
+ f_eor: IntProperty(name="Fractal Exterior", description="", min=1, max=8, default=1)
+
+ f_eor_fac: FloatProperty(
+ name="Fractal Exterior Factor", description="", min=0.0, max=10.0, default=1.0
+ )
+
+ grad_orient_x: IntProperty(
+ name="Gradient orientation X", description="", min=0, max=1, default=0
+ )
+
+ grad_orient_y: IntProperty(
+ name="Gradient orientation Y", description="", min=0, max=1, default=1
+ )
+
+ grad_orient_z: IntProperty(
+ name="Gradient orientation Z", description="", min=0, max=1, default=0
+ )
+
+ pave_sides: EnumProperty(
+ name="Pavement sides",
+ description="",
+ items=(("3", "3", ""), ("4", "4", ""), ("6", "6", "")),
+ default="3",
+ )
+
+ pave_pat_2: IntProperty(
+ name="Pavement pattern 2", description="maximum: 2", min=1, max=2, default=2
+ )
+
+ pave_pat_3: IntProperty(
+ name="Pavement pattern 3", description="maximum: 3", min=1, max=3, default=3
+ )
+
+ pave_pat_4: IntProperty(
+ name="Pavement pattern 4", description="maximum: 4", min=1, max=4, default=4
+ )
+
+ pave_pat_5: IntProperty(
+ name="Pavement pattern 5", description="maximum: 5", min=1, max=5, default=5
+ )
+
+ pave_pat_7: IntProperty(
+ name="Pavement pattern 7", description="maximum: 7", min=1, max=7, default=7
+ )
+
+ pave_pat_12: IntProperty(
+ name="Pavement pattern 12", description="maximum: 12", min=1, max=12, default=12
+ )
+
+ pave_pat_22: IntProperty(
+ name="Pavement pattern 22", description="maximum: 22", min=1, max=22, default=22
+ )
+
+ pave_pat_35: IntProperty(
+ name="Pavement pattern 35", description="maximum: 35", min=1, max=35, default=35
+ )
+
+ pave_tiles: IntProperty(
+ name="Pavement tiles",
+ description="If sides = 6, maximum tiles 5!!!",
+ min=1,
+ max=6,
+ default=1,
+ )
+
+ pave_form: IntProperty(name="Pavement form", description="", min=0, max=4, default=0)
+
+ #########FUNCTIONS#############################################################################
+ #########FUNCTIONS#############################################################################
+
+ func_list: EnumProperty(
+ name="Functions",
+ description="Select the function for create pattern",
+ items=(
+ ("NONE", "None", "No indentation"),
+ ("f_algbr_cyl1", "Algbr cyl1", ""),
+ ("f_algbr_cyl2", "Algbr cyl2", ""),
+ ("f_algbr_cyl3", "Algbr cyl3", ""),
+ ("f_algbr_cyl4", "Algbr cyl4", ""),
+ ("f_bicorn", "Bicorn", ""),
+ ("f_bifolia", "Bifolia", ""),
+ ("f_blob", "Blob", ""),
+ ("f_blob2", "Blob2", ""),
+ ("f_boy_surface", "Boy surface", ""),
+ ("f_comma", "Comma", ""),
+ ("f_cross_ellipsoids", "Cross ellipsoids", ""),
+ ("f_crossed_trough", "Crossed trough", ""),
+ ("f_cubic_saddle", "Cubic saddle", ""),
+ ("f_cushion", "Cushion", ""),
+ ("f_devils_curve", "Devils curve", ""),
+ ("f_devils_curve_2d", "Devils curve 2d", ""),
+ ("f_dupin_cyclid", "Dupin cyclid", ""),
+ ("f_ellipsoid", "Ellipsoid", ""),
+ ("f_enneper", "Enneper", ""),
+ ("f_flange_cover", "Flange cover", ""),
+ ("f_folium_surface", "Folium surface", ""),
+ ("f_folium_surface_2d", "Folium surface 2d", ""),
+ ("f_glob", "Glob", ""),
+ ("f_heart", "Heart", ""),
+ ("f_helical_torus", "Helical torus", ""),
+ ("f_helix1", "Helix1", ""),
+ ("f_helix2", "Helix2", ""),
+ ("f_hex_x", "Hex x", ""),
+ ("f_hex_y", "Hex y", ""),
+ ("f_hetero_mf", "Hetero mf", ""),
+ ("f_hunt_surface", "Hunt surface", ""),
+ ("f_hyperbolic_torus", "Hyperbolic torus", ""),
+ ("f_isect_ellipsoids", "Isect ellipsoids", ""),
+ ("f_kampyle_of_eudoxus", "Kampyle of eudoxus", ""),
+ ("f_kampyle_of_eudoxus_2d", "Kampyle of eudoxus 2d", ""),
+ ("f_klein_bottle", "Klein bottle", ""),
+ ("f_kummer_surface_v1", "Kummer surface v1", ""),
+ ("f_kummer_surface_v2", "Kummer surface v2", ""),
+ ("f_lemniscate_of_gerono", "Lemniscate of gerono", ""),
+ ("f_lemniscate_of_gerono_2d", "Lemniscate of gerono 2d", ""),
+ ("f_mesh1", "Mesh1", ""),
+ ("f_mitre", "Mitre", ""),
+ ("f_nodal_cubic", "Nodal cubic", ""),
+ ("f_noise3d", "Noise3d", ""),
+ ("f_noise_generator", "Noise generator", ""),
+ ("f_odd", "Odd", ""),
+ ("f_ovals_of_cassini", "Ovals of cassini", ""),
+ ("f_paraboloid", "Paraboloid", ""),
+ ("f_parabolic_torus", "Parabolic torus", ""),
+ ("f_ph", "Ph", ""),
+ ("f_pillow", "Pillow", ""),
+ ("f_piriform", "Piriform", ""),
+ ("f_piriform_2d", "Piriform 2d", ""),
+ ("f_poly4", "Poly4", ""),
+ ("f_polytubes", "Polytubes", ""),
+ ("f_quantum", "Quantum", ""),
+ ("f_quartic_paraboloid", "Quartic paraboloid", ""),
+ ("f_quartic_saddle", "Quartic saddle", ""),
+ ("f_quartic_cylinder", "Quartic cylinder", ""),
+ ("f_r", "R", ""),
+ ("f_ridge", "Ridge", ""),
+ ("f_ridged_mf", "Ridged mf", ""),
+ ("f_rounded_box", "Rounded box", ""),
+ ("f_sphere", "Sphere", ""),
+ ("f_spikes", "Spikes", ""),
+ ("f_spikes_2d", "Spikes 2d", ""),
+ ("f_spiral", "Spiral", ""),
+ ("f_steiners_roman", "Steiners roman", ""),
+ ("f_strophoid", "Strophoid", ""),
+ ("f_strophoid_2d", "Strophoid 2d", ""),
+ ("f_superellipsoid", "Superellipsoid", ""),
+ ("f_th", "Th", ""),
+ ("f_torus", "Torus", ""),
+ ("f_torus2", "Torus2", ""),
+ ("f_torus_gumdrop", "Torus gumdrop", ""),
+ ("f_umbrella", "Umbrella", ""),
+ ("f_witch_of_agnesi", "Witch of agnesi", ""),
+ ("f_witch_of_agnesi_2d", "Witch of agnesi 2d", ""),
+ ),
+ default="NONE",
+ )
+
+ func_x: FloatProperty(name="FX", description="", min=0.0, max=25.0, default=1.0)
+
+ func_plus_x: EnumProperty(
+ name="Func plus x",
+ description="",
+ items=(("NONE", "None", ""), ("increase", "*", ""), ("plus", "+", "")),
+ default="NONE",
+ )
+
+ func_y: FloatProperty(name="FY", description="", min=0.0, max=25.0, default=1.0)
+
+ func_plus_y: EnumProperty(
+ name="Func plus y",
+ description="",
+ items=(("NONE", "None", ""), ("increase", "*", ""), ("plus", "+", "")),
+ default="NONE",
+ )
+
+ func_z: FloatProperty(name="FZ", description="", min=0.0, max=25.0, default=1.0)
+
+ func_plus_z: EnumProperty(
+ name="Func plus z",
+ description="",
+ items=(("NONE", "None", ""), ("increase", "*", ""), ("plus", "+", "")),
+ default="NONE",
+ )
+
+ func_P0: FloatProperty(name="P0", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P1: FloatProperty(name="P1", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P2: FloatProperty(name="P2", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P3: FloatProperty(name="P3", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P4: FloatProperty(name="P4", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P5: FloatProperty(name="P5", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P6: FloatProperty(name="P6", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P7: FloatProperty(name="P7", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P8: FloatProperty(name="P8", description="", min=0.0, max=25.0, default=1.0)
+
+ func_P9: FloatProperty(name="P9", description="", min=0.0, max=25.0, default=1.0)
+
+ #########################################
+ tex_rot_x: FloatProperty(name="Rotate X", description="", min=-180.0, max=180.0, default=0.0)
+
+ tex_rot_y: FloatProperty(name="Rotate Y", description="", min=-180.0, max=180.0, default=0.0)
+
+ tex_rot_z: FloatProperty(name="Rotate Z", description="", min=-180.0, max=180.0, default=0.0)
+
+ tex_mov_x: FloatProperty(
+ name="Move X", description="", min=-100000.0, max=100000.0, default=0.0
+ )
+
+ tex_mov_y: FloatProperty(
+ name="Move Y", description="", min=-100000.0, max=100000.0, default=0.0
+ )
+
+ tex_mov_z: FloatProperty(
+ name="Move Z", description="", min=-100000.0, max=100000.0, default=0.0
+ )
+
+ tex_scale_x: FloatProperty(name="Scale X", description="", min=0.0, max=10000.0, default=1.0)
+
+ tex_scale_y: FloatProperty(name="Scale Y", description="", min=0.0, max=10000.0, default=1.0)
+
+ tex_scale_z: FloatProperty(name="Scale Z", description="", min=0.0, max=10000.0, default=1.0)
+
+
+classes = (MaterialTextureSlot, WorldTextureSlot, RenderPovSettingsTexture)
+
+
+def register():
+ for cls in classes:
+ register_class(cls)
+
+ bpy.types.Material.pov_texture_slots = CollectionProperty(type=MaterialTextureSlot)
+ bpy.types.World.pov_texture_slots = CollectionProperty(type=WorldTextureSlot)
+ bpy.types.Texture.pov = PointerProperty(type=RenderPovSettingsTexture)
+
+
+def unregister():
+ del bpy.types.Texture.pov
+ del bpy.types.World.pov_texture_slots
+ del bpy.types.Material.pov_texture_slots
+
+ for cls in reversed(classes):
+ unregister_class(cls)