Newer
Older
# ##### 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 #####
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
"""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
as possible :
___init__.py :
Initialize variables
update_files.py
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
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 ;
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 ;
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 ;
World
01_Clear_Blue_Sky.py ; 02_Partly_Hazy_Sky.py ; 03_Overcast_Sky.py ;
04_Cartoony_Sky.py ; 05_Under_Water.py ;
Light
01_(5400K)_Direct_Sun.py ; 02_(5400K)_High_Noon_Sun.py ;
03_(6000K)_Daylight_Window.py ;
04_(6000K)_2500W_HMI_(Halogen_Metal_Iodide).py ;
05_(4000K)_100W_Metal_Halide.py ; 06_(3200K)_100W_Quartz_Halogen.py ;
07_(2850K)_100w_Tungsten.py ; 08_(2600K)_40w_Tungsten.py ;
09_(5000K)_75W_Full_Spectrum_Fluorescent_T12.py ;
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 ;
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 ;
22_(30000K)_40W_Black_Light_Fluorescent.py ;
23_(30000K)_40W_Black_Light_Bulb.py; 24_(1850K)_Candle.py
templates:
abyss.pov ; biscuit.pov ; bsp_Tango.pov ; chess2.pov ;
cornell.pov ; diffract.pov ; diffuse_back.pov ; float5 ;
gamma_showcase.pov ; grenadine.pov ; isocacti.pov ;
mediasky.pov ; patio-radio.pov ; subsurface.pov ; wallstucco.pov
"""
"name": "Persistence of Vision",
"author": "Campbell Barton, "
"Maurice Raybaud, "
"Leonid Desyatkov, "
"Bastien Montagne, "
"Constantin Rahn, "
"Silvio Falcinelli",
"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",
"category": "Render",
}
import importlib
importlib.reload(ui)
importlib.reload(render)
importlib.reload(update_files)
from bpy.utils import register_class, unregister_class
Maurice Raybaud
committed
#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,
)
from bpy.props import (
StringProperty,
BoolProperty,
IntProperty,
FloatProperty,
FloatVectorProperty,
EnumProperty,
PointerProperty,
)
from . import (
ui,
render,
update_files,
)
CoDEmanX
committed
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):
mat = context.scene.view_layers["View Layer"].objects.active.active_material
index = mat.pov.active_texture_index
name = mat.pov_texture_slots[index].name
newname = mat.pov_texture_slots[index].texture
tex = bpy.data.textures[name]
tex.name = newname
mat.pov_texture_slots[index].name = newname
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
try:
tex = bpy.data.textures[name]
mat.pov_texture_slots[index].name = name
mat.pov_texture_slots[index].texture = name
except:
pass
Bastien Montagne
committed
###############################################################################
# Scene POV properties.
###############################################################################
class RenderPovSettingsScene(PropertyGroup):
"""Declare scene level properties controllable in UI and translated to POV."""
name="Enable SDL window",
description="Enable the SDL window in Linux OS",
default=True)
Maurice Raybaud
committed
name="Text Scene Name",
description="Name of POV scene to use. "
Maurice Raybaud
committed
"Set when clicking Run to render current text only",
maxlen=1024)
description="Enable the OS-Tempfiles. Otherwise set the path where"
" to save the files",
name="POV editor",
description="Don't Close POV editor after rendering (Overridden"
" by /EXIT command)",
deletefiles_enable: BoolProperty(
description="Delete files after rendering. "
"Doesn't work with the image",
description="Name of POV scene to create. Empty name will use "
"the name of the blend file",
# Bug in POV-Ray RC3
# description="Path to directory where the exported scene "
description="Path to directory where the files are created",
maxlen=1024, subtype="DIR_PATH")
renderimage_path: StringProperty(
description="Full path to directory where the rendered image is "
"saved",
maxlen=1024, subtype="DIR_PATH")
description="Enable line breaks in lists (vectors and indices). "
"Disabled: lists are exported in one line",
# Not a real pov option, just to know if we should write
description="Enable POV radiosity calculation",
radio_display_advanced: BoolProperty(
name="Advanced Options",
description="Show advanced options",
default=False)
description="Enable POV atmospheric media",
Bastien Montagne
committed
name="Samples",
Campbell Barton
committed
description="Number of samples taken from camera to first object "
Bastien Montagne
committed
"encountered along ray path for media calculation",
min=1, max=100, default=35)
media_scattering_type: EnumProperty(
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
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"
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))
media_diffusion_color: FloatVectorProperty(
name="Media Diffusion Color", description="The atmospheric media color",
Bastien Montagne
committed
precision=4, step=0.01, min=0, soft_max=1,
default=(0.001, 0.001, 0.001),
Bastien Montagne
committed
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))
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'},
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'})
description="Enable POV texture baking",
indentation_character: EnumProperty(
name="Indentation",
description="Select the indentation type",
Campbell Barton
committed
items=(('NONE', "None", "No indentation"),
('TAB', "Tabs", "Indentation with tabs"),
('SPACE', "Spaces", "Indentation with spaces")),
default='SPACE')
name="Quantity of spaces",
description="The number of spaces for indentation",
Constantin Rahn
committed
description="Add comments to pov file",
command_line_switches: StringProperty(
Bastien Montagne
committed
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",
name="Anti-Alias", description="Enable Anti-Aliasing",
default=True)
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")),
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 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)
Bastien Montagne
committed
name="Jitter",
description="Enable Jittering. Adds noise into the sampling "
"process (it should be avoided to use jitter in "
"animation)",
default=False)
name="Jitter Amount", description="Amount of jittering",
min=0.0, max=1.0, soft_min=0.01, soft_max=1.0, default=1.0)
Bastien Montagne
committed
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")
use_shadows: BoolProperty(
name="Shadows",
description="Calculate shadows while rendering",
default=True)
Bastien Montagne
committed
name="Max Trace Level",
description="Number of reflections/refractions allowed on ray "
"path",
adc_bailout_enable: BoolProperty(
Maurice Raybaud
committed
name="Enable",
description="",
default=False)
Maurice Raybaud
committed
name="ADC Bailout",
description="",
min=0.0, max=1000.0,default=0.00392156862745, precision=3)
ambient_light_enable: BoolProperty(
Maurice Raybaud
committed
name="Enable",
description="",
default=False)
ambient_light: FloatVectorProperty(
name="Ambient Light",
description="Ambient light is used to simulate the effect of inter-diffuse reflection",
Maurice Raybaud
committed
precision=4, step=0.01, min=0, soft_max=1,
default=(1, 1, 1), options={'ANIMATABLE'}, subtype='COLOR',
)
global_settings_advanced: BoolProperty(
Maurice Raybaud
committed
name="Advanced",
description="",
default=False)
irid_wavelength_enable: BoolProperty(
Maurice Raybaud
committed
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"
),
Maurice Raybaud
committed
precision=4, step=0.01, min=0, soft_max=1,
default=(0.25,0.18,0.14), options={'ANIMATABLE'}, subtype='COLOR')
Maurice Raybaud
committed
name="Charset",
description="This allows you to specify the assumed character set of all text strings",
Maurice Raybaud
committed
items=(("ascii", "ASCII", ""),
("utf8", "UTF-8", ""),
("sys", "SYS", "")),
default="utf8")
max_intersections_enable: BoolProperty(
Maurice Raybaud
committed
name="Enable",
description="",
default=False)
Maurice Raybaud
committed
name="Max Intersections",
description="POV-Ray uses a set of internal stacks to collect ray/object intersection points",
Maurice Raybaud
committed
min=2, max=1024, default=64)
number_of_waves_enable: BoolProperty(
Maurice Raybaud
committed
name="Enable",
description="",
default=False)
Maurice Raybaud
committed
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"
),
Maurice Raybaud
committed
min=1, max=10, default=1000)
noise_generator_enable: BoolProperty(
Maurice Raybaud
committed
name="Enable",
description="",
default=False)
Maurice Raybaud
committed
name="Noise Generator",
description="There are three noise generators implemented",
Maurice Raybaud
committed
min=1, max=3, default=2)
########################### PHOTONS #######################################
name="Photons",
description="Enable global photons",
default=False)
photon_enable_count: BoolProperty(
name="Spacing / Count",
description="Enable count photons",
default=False)
name="Count",
description="Photons count",
min=1, max=100000000, default=20000)
Bastien Montagne
committed
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)
photon_max_trace_level: IntProperty(
Bastien Montagne
committed
name="Max Trace Level",
description="Number of reflections/refractions allowed on ray "
"path",
photon_adc_bailout: FloatProperty(
Bastien Montagne
committed
name="ADC Bailout",
Campbell Barton
committed
description="The adc_bailout for photons. Use adc_bailout = "
Bastien Montagne
committed
"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="Gather Min", description="Minimum number of photons gathered"
"for each point",
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")
photon_map_filename: StringProperty(
name="Filename",
description="",
maxlen=1024)
name="Directory",
description="",
maxlen=1024, subtype="DIR_PATH")
name="File",
description="",
maxlen=1024, subtype="FILE_PATH")
radio_adc_bailout: FloatProperty(
Bastien Montagne
committed
name="ADC Bailout",
Campbell Barton
committed
description="The adc_bailout for radiosity rays. Use "
Bastien Montagne
committed
"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(
Bastien Montagne
committed
name="Always Sample",
Campbell Barton
committed
description="Only use the data from the pretrace step and not gather "
Bastien Montagne
committed
"any new samples during the final radiosity pass",
Maurice Raybaud
committed
default=False)
Bastien Montagne
committed
name="Brightness",
Campbell Barton
committed
description="Amount objects are brightened before being returned "
Bastien Montagne
committed
"upwards to the rest of the system",
min=0.0, max=1000.0, soft_min=0.0, soft_max=10.0, default=1.0)
Bastien Montagne
committed
name="Ray Count",
Campbell Barton
committed
description="Number of rays for each new radiosity value to be calculated "
Bastien Montagne
committed
"(halton sequence over 1600)",
radio_error_bound: FloatProperty(
Bastien Montagne
committed
name="Error Bound",
Campbell Barton
committed
description="One of the two main speed/quality tuning values, "
Bastien Montagne
committed
"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(
Bastien Montagne
committed
name="Gray Threshold",
Campbell Barton
committed
description="One of the two main speed/quality tuning values, "
Bastien Montagne
committed
"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(
Bastien Montagne
committed
name="Low Error Factor",
Campbell Barton
committed
description="Just enough samples is slightly blotchy. Low error changes error "
Bastien Montagne
committed
"tolerance for less critical last refining pass",
Maurice Raybaud
committed
min=0.000001, max=1.0, soft_min=0.000001, soft_max=1.0, default=0.5)
name="Media", description="Radiosity estimation can be affected by media",
Maurice Raybaud
committed
name="Subsurface", description="Radiosity estimation can be affected by Subsurface Light Transport",
default=False)
radio_minimum_reuse: FloatProperty(
Bastien Montagne
committed
name="Minimum Reuse",
Campbell Barton
committed
description="Fraction of the screen width which sets the minimum radius of reuse "
Bastien Montagne
committed
"for each sample point (At values higher than 2% expect errors)",
Maurice Raybaud
committed
min=0.0, max=1.0, soft_min=0.1, soft_max=0.1, default=0.015, precision=3)
radio_maximum_reuse: FloatProperty(
Maurice Raybaud
committed
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",
Maurice Raybaud
committed
min=0.0, max=1.0,default=0.2, precision=3)
radio_nearest_count: IntProperty(
Bastien Montagne
committed
name="Nearest Count",
Campbell Barton
committed
description="Number of old ambient values blended together to "
Bastien Montagne
committed
"create a new interpolated value",
min=1, max=20, default=1)
name="Normals", description="Radiosity estimation can be affected by normals",
default=False)
radio_recursion_limit: IntProperty(
Bastien Montagne
committed
name="Recursion Limit",
Campbell Barton
committed
description="how many recursion levels are used to calculate "
Bastien Montagne
committed
"the diffuse inter-reflection",
min=1, max=20, default=1)
radio_pretrace_start: FloatProperty(
Bastien Montagne
committed
name="Pretrace Start",
Campbell Barton
committed
description="Fraction of the screen width which sets the size of the "
Bastien Montagne
committed
"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(
Bastien Montagne
committed
name="Pretrace End",
Campbell Barton
committed
description="Fraction of the screen width which sets the size of the blocks "
Bastien Montagne
committed
"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)
Bastien Montagne
committed
###############################################################################
# Material POV properties.
###############################################################################
"""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)
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
alpha_factor: FloatProperty(
name="Alpha",
description="Amount texture affects alpha",
default = 0.0)
ambient_factor: FloatProperty(
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")
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 = 0.0)
diffuse_color_factor: FloatProperty(
name="",
description="Amount texture affects diffuse color",
default = 0.0)
diffuse_factor: FloatProperty(
name="",
description="Amount texture affects diffuse reflectivity",
default = 0.0)
displacement_factor: FloatProperty(
name="",
description="Amount texture displaces the surface",
default = 0.0)
emission_color_factor: FloatProperty(
name="",
description="Amount texture affects emission color",
default = 0.0)
emission_factor: FloatProperty(
name="",
description="Amount texture affects emission",
default = 0.0)
emit_factor: FloatProperty(
name="",
description="Amount texture affects emission",
default = 0.0)
hardness_factor: FloatProperty(
name="",
description="Amount texture affects hardness",
default = 0.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 = 0.0)
normal_factor: FloatProperty(
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")
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 = 0.0)
reflection_color_factor: FloatProperty(
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)
scattering_factor: FloatProperty(
name="",
description="Amount texture affects scattering",
default = 0.0)
specular_color_factor: FloatProperty(
name="",
description="Amount texture affects specular color",
default = 0.0)
specular_factor: FloatProperty(
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")
translucency_factor: FloatProperty(
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)
use: BoolProperty(
name="",
description="Enable this material texture slot",
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
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_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 = False)
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(