Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B
blender-addons
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
blender
blender-addons
Commits
07d03141
Commit
07d03141
authored
11 years ago
by
Maurice Raybaud
Browse files
Options
Downloads
Patches
Plain Diff
*added: first implementation of procedural textures
*fixed:packed textures *fixed:library objects
parent
d030a694
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
render_povray/__init__.py
+460
-9
460 additions, 9 deletions
render_povray/__init__.py
render_povray/render.py
+783
-98
783 additions, 98 deletions
render_povray/render.py
render_povray/ui.py
+282
-9
282 additions, 9 deletions
render_povray/ui.py
with
1525 additions
and
116 deletions
render_povray/__init__.py
+
460
−
9
View file @
07d03141
...
...
@@ -20,19 +20,17 @@
bl_info
=
{
"
name
"
:
"
POV-Ray 3.7
"
,
"
author
"
:
"
Campbell Barton, Silvio Falcinelli, Maurice Raybaud,
"
"
Constantin Rahn, Bastien Montagne
"
,
"
author
"
:
"
Campbell Barton, Silvio Falcinelli, Maurice Raybaud, Constantin Rahn, Bastien Montagne
"
,
"
version
"
:
(
0
,
0
,
9
),
"
blender
"
:
(
2
,
57
,
0
),
"
location
"
:
"
Render > Engine > POV-Ray 3.7
"
,
"
description
"
:
"
Basic POV-Ray 3.7 integration for blender
"
,
"
warning
"
:
"
both POV-Ray 3.7 and
this script
are beta
"
,
"
warning
"
:
"
this script
is RC
"
,
"
wiki_url
"
:
"
http://wiki.blender.org/index.php/Extensions:2.6/Py/
"
"
Scripts/Render/POV-Ray
"
,
"
Scripts/Render/POV-Ray
"
,
"
tracker_url
"
:
"
https://developer.blender.org/T23145
"
,
"
category
"
:
"
Render
"
}
if
"
bpy
"
in
locals
():
import
imp
imp
.
reload
(
ui
)
...
...
@@ -43,6 +41,7 @@ else:
import
bpy
from
bpy.types
import
(
AddonPreferences
,
PropertyGroup
,
Operator
,
)
from
bpy.props
import
(
StringProperty
,
BoolProperty
,
...
...
@@ -56,7 +55,8 @@ else:
from
.
import
render
from
.
import
update_files
def
string_strip_hyphen
(
name
):
return
name
.
replace
(
"
-
"
,
""
)
###############################################################################
# Scene POV properties.
...
...
@@ -67,6 +67,10 @@ class RenderPovSettingsScene(PropertyGroup):
name
=
"
Enable Tempfiles
"
,
description
=
"
Enable the OS-Tempfiles. Otherwise set the path where to save the files
"
,
default
=
True
)
pov_editor
=
BoolProperty
(
name
=
"
POV-Ray editor
"
,
description
=
"
Don
'
t Close POV-Ray editor after rendering (Overriden by /EXIT command)
"
,
default
=
False
)
deletefiles_enable
=
BoolProperty
(
name
=
"
Delete files
"
,
description
=
"
Delete files after rendering. Doesn
'
t work with the image
"
,
...
...
@@ -419,7 +423,452 @@ class RenderPovSettingsTexture(PropertyGroup):
# "it points at. pigment {} expected",
# default="")
tex_pattern_type
=
EnumProperty
(
name
=
"
Texture_Type
"
,
description
=
"
Choose between Blender or POV-Ray parameters to specify texture
"
,
items
=
((
'
agate
'
,
'
Agate
'
,
''
,
'
PLUGIN
'
,
0
),
(
'
aoi
'
,
'
Aoi
'
,
''
,
'
PLUGIN
'
,
1
),
(
'
average
'
,
'
Average
'
,
''
,
'
PLUGIN
'
,
2
),
(
'
boxed
'
,
'
Boxed
'
,
''
,
'
PLUGIN
'
,
3
),
(
'
bozo
'
,
'
Bozo
'
,
''
,
'
PLUGIN
'
,
4
),
(
'
bumps
'
,
'
Bumps
'
,
''
,
'
PLUGIN
'
,
5
),
(
'
cells
'
,
'
Cells
'
,
''
,
'
PLUGIN
'
,
6
),
(
'
crackle
'
,
'
Crackle
'
,
''
,
'
PLUGIN
'
,
7
),
(
'
cubic
'
,
'
Cubic
'
,
''
,
'
PLUGIN
'
,
8
),
(
'
cylindrical
'
,
'
Cylindrical
'
,
''
,
'
PLUGIN
'
,
9
),
(
'
density_file
'
,
'
Density
'
,
'
(.df3)
'
,
'
PLUGIN
'
,
10
),
(
'
dents
'
,
'
Dents
'
,
''
,
'
PLUGIN
'
,
11
),
(
'
fractal
'
,
'
Fractal
'
,
''
,
'
PLUGIN
'
,
12
),
(
'
function
'
,
'
Function
'
,
''
,
'
PLUGIN
'
,
13
),
(
'
gradient
'
,
'
Gradient
'
,
''
,
'
PLUGIN
'
,
14
),
(
'
granite
'
,
'
Granite
'
,
''
,
'
PLUGIN
'
,
15
),
(
'
image_pattern
'
,
'
Image pattern
'
,
''
,
'
PLUGIN
'
,
16
),
(
'
leopard
'
,
'
Leopard
'
,
''
,
'
PLUGIN
'
,
17
),
(
'
marble
'
,
'
Marble
'
,
''
,
'
PLUGIN
'
,
18
),
(
'
onion
'
,
'
Onion
'
,
''
,
'
PLUGIN
'
,
19
),
(
'
pigment_pattern
'
,
'
pigment pattern
'
,
''
,
'
PLUGIN
'
,
20
),
(
'
planar
'
,
'
Planar
'
,
''
,
'
PLUGIN
'
,
21
),
(
'
quilted
'
,
'
Quilted
'
,
''
,
'
PLUGIN
'
,
22
),
(
'
radial
'
,
'
Radial
'
,
''
,
'
PLUGIN
'
,
23
),
(
'
ripples
'
,
'
Ripples
'
,
''
,
'
PLUGIN
'
,
24
),
(
'
slope
'
,
'
Slope
'
,
''
,
'
PLUGIN
'
,
25
),
(
'
spherical
'
,
'
Spherical
'
,
''
,
'
PLUGIN
'
,
26
),
(
'
spiral1
'
,
'
Spiral1
'
,
''
,
'
PLUGIN
'
,
27
),
(
'
spiral2
'
,
'
Spiral2
'
,
''
,
'
PLUGIN
'
,
28
),
(
'
spotted
'
,
'
Spotted
'
,
''
,
'
PLUGIN
'
,
29
),
(
'
waves
'
,
'
Waves
'
,
''
,
'
PLUGIN
'
,
30
),
(
'
wood
'
,
'
Wood
'
,
''
,
'
PLUGIN
'
,
31
),
(
'
wrinkles
'
,
'
Wrinkles
'
,
''
,
'
PLUGIN
'
,
32
),
(
'
brick
'
,
"
Brick
"
,
""
,
'
PLUGIN
'
,
33
),
(
'
checker
'
,
"
Checker
"
,
""
,
'
PLUGIN
'
,
34
),
(
'
hexagon
'
,
"
Hexagon
"
,
""
,
'
PLUGIN
'
,
35
),
(
'
object
'
,
"
Mesh
"
,
""
,
'
PLUGIN
'
,
36
),
(
'
emulator
'
,
"
Internal Emulator
"
,
""
,
'
PLUG
'
,
37
)),
default
=
'
emulator
'
,
)
magnet_style
=
EnumProperty
(
name
=
"
Magnet style
"
,
description
=
"
magnet or julia
"
,
items
=
((
'
mandel
'
,
"
Mandelbrot
"
,
""
),(
'
julia
'
,
"
Julia
"
,
""
)),
default
=
'
julia
'
)
magnet_type
=
IntProperty
(
name
=
"
Magnet_type
"
,
description
=
"
1 or 2
"
,
min
=
1
,
max
=
2
,
default
=
2
)
warp_types
=
EnumProperty
(
name
=
"
Warp Types
"
,
description
=
"
Select the type of warp
"
,
items
=
((
'
PLANAR
'
,
"
Planar
"
,
""
),
(
'
CUBIC
'
,
"
Cubic
"
,
""
),
(
'
SPHERICAL
'
,
"
Spherical
"
,
""
),
(
'
TOROIDAL
'
,
"
Toroidal
"
,
""
),
(
'
CYLINDRICAL
'
,
"
Cylindrical
"
,
""
),(
'
NONE
'
,
"
None
"
,
"
No indentation
"
)),
default
=
'
NONE
'
)
warp_orientation
=
EnumProperty
(
name
=
"
Warp Orientation
"
,
description
=
"
Select the orientation of warp
"
,
items
=
((
'
x
'
,
"
X
"
,
""
),
(
'
y
'
,
"
Y
"
,
""
),
(
'
z
'
,
"
Z
"
,
""
)),
default
=
'
y
'
)
wave_type
=
EnumProperty
(
name
=
"
Waves type
"
,
description
=
"
Select the type of waves
"
,
items
=
((
'
ramp
'
,
"
Ramp
"
,
""
),
(
'
sine
'
,
"
Sine
"
,
""
),
(
'
scallop
'
,
"
Scallop
"
,
""
),
(
'
cubic
'
,
"
Cubic
"
,
""
),
(
'
poly
'
,
"
Poly
"
,
""
),
(
'
triangle
'
,
'
Triangle
'
,
""
)),
default
=
'
ramp
'
)
gen_noise
=
IntProperty
(
name
=
"
Noise Generators
"
,
description
=
"
Noise Generators
"
,
min
=
1
,
max
=
3
,
default
=
1
)
warp_dist_exp
=
FloatProperty
(
name
=
"
Distance exponent
"
,
description
=
"
Distance exponent
"
,
min
=
0.0
,
max
=
100.0
,
default
=
1.0
)
warp_tor_major_radius
=
FloatProperty
(
name
=
"
Major radius
"
,
description
=
"
Torus is distance from major radius
"
,
min
=
0.0
,
max
=
5.0
,
default
=
1.0
)
warp_turbulence_x
=
FloatProperty
(
name
=
"
Turbulence X
"
,
description
=
"
Turbulence X
"
,
min
=
0.0
,
max
=
5.0
,
default
=
0.0
)
warp_turbulence_y
=
FloatProperty
(
name
=
"
Turbulence Y
"
,
description
=
"
Turbulence Y
"
,
min
=
0.0
,
max
=
5.0
,
default
=
0.0
)
warp_turbulence_z
=
FloatProperty
(
name
=
"
Turbulence Z
"
,
description
=
"
Turbulence Z
"
,
min
=
0.0
,
max
=
5.0
,
default
=
0.0
)
modifier_octaves
=
IntProperty
(
name
=
"
Turbulence octaves
"
,
description
=
"
Turbulence octaves
"
,
min
=
1
,
max
=
10
,
default
=
1
)
modifier_lambda
=
FloatProperty
(
name
=
"
Turbulence lambda
"
,
description
=
"
Turbulence lambda
"
,
min
=
0.0
,
max
=
5.0
,
default
=
1.00
)
modifier_omega
=
FloatProperty
(
name
=
"
Turbulence omega
"
,
description
=
"
Turbulence omega
"
,
min
=
0.0
,
max
=
10.0
,
default
=
1.00
)
modifier_phase
=
FloatProperty
(
name
=
"
Phase
"
,
description
=
"
The phase value causes the map entries to be shifted so that the map starts and ends at a different place.
"
,
min
=
0.0
,
max
=
2.0
,
default
=
0.0
)
modifier_frequency
=
FloatProperty
(
name
=
"
Frequency
"
,
description
=
"
The frequency keyword adjusts the number of times that a color map repeats over one cycle of a pattern.
"
,
min
=
0.0
,
max
=
25.0
,
default
=
2.0
)
modifier_turbulence
=
FloatProperty
(
name
=
"
Turbulence
"
,
description
=
"
Turbulence
"
,
min
=
0.0
,
max
=
5.0
,
default
=
2.0
)
modifier_numbers
=
IntProperty
(
name
=
"
Numbers
"
,
description
=
"
Numbers
"
,
min
=
1
,
max
=
27
,
default
=
2
)
modifier_control0
=
IntProperty
(
name
=
"
Control0
"
,
description
=
"
Control0
"
,
min
=
0
,
max
=
100
,
default
=
1
)
modifier_control1
=
IntProperty
(
name
=
"
Control1
"
,
description
=
"
Control1
"
,
min
=
0
,
max
=
100
,
default
=
1
)
brick_size_x
=
FloatProperty
(
name
=
"
Brick size x
"
,
description
=
""
,
min
=
0.0000
,
max
=
1.0000
,
default
=
0.2500
)
brick_size_y
=
FloatProperty
(
name
=
"
Brick size y
"
,
description
=
""
,
min
=
0.0000
,
max
=
1.0000
,
default
=
0.0525
)
brick_size_z
=
FloatProperty
(
name
=
"
Brick size z
"
,
description
=
""
,
min
=
0.0000
,
max
=
1.0000
,
default
=
0.1250
)
brick_mortar
=
FloatProperty
(
name
=
"
Mortar
"
,
description
=
"
Mortar
"
,
min
=
0.000
,
max
=
1.500
,
default
=
0.01
)
julia_complex_1
=
FloatProperty
(
name
=
"
Julia Complex 1
"
,
description
=
""
,
min
=
0.000
,
max
=
1.500
,
default
=
0.360
)
julia_complex_2
=
FloatProperty
(
name
=
"
Julia Complex 2
"
,
description
=
""
,
min
=
0.000
,
max
=
1.500
,
default
=
0.250
)
f_iter
=
IntProperty
(
name
=
"
Fractal Iteration
"
,
description
=
""
,
min
=
0
,
max
=
100
,
default
=
20
)
f_exponent
=
IntProperty
(
name
=
"
Fractal Exponent
"
,
description
=
""
,
min
=
2
,
max
=
33
,
default
=
2
)
f_ior
=
IntProperty
(
name
=
"
Fractal Interior
"
,
description
=
""
,
min
=
1
,
max
=
6
,
default
=
1
)
f_ior_fac
=
FloatProperty
(
name
=
"
Fractal Interior Factor
"
,
description
=
""
,
min
=
0.0
,
max
=
10.0
,
default
=
1.0
)
f_eor
=
IntProperty
(
name
=
"
Fractal Exterior
"
,
description
=
""
,
min
=
1
,
max
=
8
,
default
=
1
)
f_eor_fac
=
FloatProperty
(
name
=
"
Fractal Exterior Factor
"
,
description
=
""
,
min
=
0.0
,
max
=
10.0
,
default
=
1.0
)
grad_orient_x
=
IntProperty
(
name
=
"
Gradient orientation X
"
,
description
=
""
,
min
=
0
,
max
=
1
,
default
=
0
)
grad_orient_y
=
IntProperty
(
name
=
"
Gradient orientation Y
"
,
description
=
""
,
min
=
0
,
max
=
1
,
default
=
1
)
grad_orient_z
=
IntProperty
(
name
=
"
Gradient orientation Z
"
,
description
=
""
,
min
=
0
,
max
=
1
,
default
=
0
)
pave_sides
=
EnumProperty
(
name
=
"
Pavement sides
"
,
description
=
""
,
items
=
((
'
3
'
,
"
3
"
,
""
),
(
'
4
'
,
"
4
"
,
""
),
(
'
6
'
,
"
6
"
,
""
)),
default
=
'
3
'
)
pave_pat_2
=
IntProperty
(
name
=
"
Pavement pattern 2
"
,
description
=
"
maximum: 2
"
,
min
=
1
,
max
=
2
,
default
=
2
)
pave_pat_3
=
IntProperty
(
name
=
"
Pavement pattern 3
"
,
description
=
"
maximum: 3
"
,
min
=
1
,
max
=
3
,
default
=
3
)
pave_pat_4
=
IntProperty
(
name
=
"
Pavement pattern 4
"
,
description
=
"
maximum: 4
"
,
min
=
1
,
max
=
4
,
default
=
4
)
pave_pat_5
=
IntProperty
(
name
=
"
Pavement pattern 5
"
,
description
=
"
maximum: 5
"
,
min
=
1
,
max
=
5
,
default
=
5
)
pave_pat_7
=
IntProperty
(
name
=
"
Pavement pattern 7
"
,
description
=
"
maximum: 7
"
,
min
=
1
,
max
=
7
,
default
=
7
)
pave_pat_12
=
IntProperty
(
name
=
"
Pavement pattern 12
"
,
description
=
"
maximum: 12
"
,
min
=
1
,
max
=
12
,
default
=
12
)
pave_pat_22
=
IntProperty
(
name
=
"
Pavement pattern 22
"
,
description
=
"
maximum: 22
"
,
min
=
1
,
max
=
22
,
default
=
22
)
pave_pat_35
=
IntProperty
(
name
=
"
Pavement pattern 35
"
,
description
=
"
maximum: 35
"
,
min
=
1
,
max
=
35
,
default
=
35
)
pave_tiles
=
IntProperty
(
name
=
"
Pavement tiles
"
,
description
=
"
If sides = 6, maximum tiles 5!!!
"
,
min
=
1
,
max
=
6
,
default
=
1
)
pave_form
=
IntProperty
(
name
=
"
Pavement form
"
,
description
=
""
,
min
=
0
,
max
=
4
,
default
=
0
)
#########FUNCTIONS#########################################################################################################################
#########FUNCTIONS#########################################################################################################################
func_list
=
EnumProperty
(
name
=
"
Functions
"
,
description
=
"
Select the function for create pattern
"
,
items
=
((
'
NONE
'
,
"
None
"
,
"
No indentation
"
),
(
"
f_algbr_cyl1
"
,
"
Algbr cyl1
"
,
""
),
(
"
f_algbr_cyl2
"
,
"
Algbr cyl2
"
,
""
),
(
"
f_algbr_cyl3
"
,
"
Algbr cyl3
"
,
""
),
(
"
f_algbr_cyl4
"
,
"
Algbr cyl4
"
,
""
),
(
"
f_bicorn
"
,
"
Bicorn
"
,
""
),
(
"
f_bifolia
"
,
"
Bifolia
"
,
""
),
(
"
f_blob
"
,
"
Blob
"
,
""
),
(
"
f_blob2
"
,
"
Blob2
"
,
""
),
(
"
f_boy_surface
"
,
"
Boy surface
"
,
""
),
(
"
f_comma
"
,
"
Comma
"
,
""
),
(
"
f_cross_ellipsoids
"
,
"
Cross ellipsoids
"
,
""
),
(
"
f_crossed_trough
"
,
"
Crossed trough
"
,
""
),
(
"
f_cubic_saddle
"
,
"
Cubic saddle
"
,
""
),
(
"
f_cushion
"
,
"
Cushion
"
,
""
),
(
"
f_devils_curve
"
,
"
Devils curve
"
,
""
),
(
"
f_devils_curve_2d
"
,
"
Devils curve 2d
"
,
""
),
(
"
f_dupin_cyclid
"
,
"
Dupin cyclid
"
,
""
),
(
"
f_ellipsoid
"
,
"
Ellipsoid
"
,
""
),
(
"
f_enneper
"
,
"
Enneper
"
,
""
),
(
"
f_flange_cover
"
,
"
Flange cover
"
,
""
),
(
"
f_folium_surface
"
,
"
Folium surface
"
,
""
),
(
"
f_folium_surface_2d
"
,
"
Folium surface 2d
"
,
""
),
(
"
f_glob
"
,
"
Glob
"
,
""
),
(
"
f_heart
"
,
"
Heart
"
,
""
),
(
"
f_helical_torus
"
,
"
Helical torus
"
,
""
),
(
"
f_helix1
"
,
"
Helix1
"
,
""
),
(
"
f_helix2
"
,
"
Helix2
"
,
""
),
(
"
f_hex_x
"
,
"
Hex x
"
,
""
),
(
"
f_hex_y
"
,
"
Hex y
"
,
""
),
(
"
f_hetero_mf
"
,
"
Hetero mf
"
,
""
),
(
"
f_hunt_surface
"
,
"
Hunt surface
"
,
""
),
(
"
f_hyperbolic_torus
"
,
"
Hyperbolic torus
"
,
""
),
(
"
f_isect_ellipsoids
"
,
"
Isect ellipsoids
"
,
""
),
(
"
f_kampyle_of_eudoxus
"
,
"
Kampyle of eudoxus
"
,
""
),
(
"
f_kampyle_of_eudoxus_2d
"
,
"
Kampyle of eudoxus 2d
"
,
""
),
(
"
f_klein_bottle
"
,
"
Klein bottle
"
,
""
),
(
"
f_kummer_surface_v1
"
,
"
Kummer surface v1
"
,
""
),
(
"
f_kummer_surface_v2
"
,
"
Kummer surface v2
"
,
""
),
(
"
f_lemniscate_of_gerono
"
,
"
Lemniscate of gerono
"
,
""
),
(
"
f_lemniscate_of_gerono_2d
"
,
"
Lemniscate of gerono 2d
"
,
""
),
(
"
f_mesh1
"
,
"
Mesh1
"
,
""
),
(
"
f_mitre
"
,
"
Mitre
"
,
""
),
(
"
f_nodal_cubic
"
,
"
Nodal cubic
"
,
""
),
(
"
f_noise3d
"
,
"
Noise3d
"
,
""
),
(
"
f_noise_generator
"
,
"
Noise generator
"
,
""
),
(
"
f_odd
"
,
"
Odd
"
,
""
),
(
"
f_ovals_of_cassini
"
,
"
Ovals of cassini
"
,
""
),
(
"
f_paraboloid
"
,
"
Paraboloid
"
,
""
),
(
"
f_parabolic_torus
"
,
"
Parabolic torus
"
,
""
),
(
"
f_ph
"
,
"
Ph
"
,
""
),
(
"
f_pillow
"
,
"
Pillow
"
,
""
),
(
"
f_piriform
"
,
"
Piriform
"
,
""
),
(
"
f_piriform_2d
"
,
"
Piriform 2d
"
,
""
),
(
"
f_poly4
"
,
"
Poly4
"
,
""
),
(
"
f_polytubes
"
,
"
Polytubes
"
,
""
),
(
"
f_quantum
"
,
"
Quantum
"
,
""
),
(
"
f_quartic_paraboloid
"
,
"
Quartic paraboloid
"
,
""
),
(
"
f_quartic_saddle
"
,
"
Quartic saddle
"
,
""
),
(
"
f_quartic_cylinder
"
,
"
Quartic cylinder
"
,
""
),
(
"
f_r
"
,
"
R
"
,
""
),
(
"
f_ridge
"
,
"
Ridge
"
,
""
),
(
"
f_ridged_mf
"
,
"
Ridged mf
"
,
""
),
(
"
f_rounded_box
"
,
"
Rounded box
"
,
""
),
(
"
f_sphere
"
,
"
Sphere
"
,
""
),
(
"
f_spikes
"
,
"
Spikes
"
,
""
),
(
"
f_spikes_2d
"
,
"
Spikes 2d
"
,
""
),
(
"
f_spiral
"
,
"
Spiral
"
,
""
),
(
"
f_steiners_roman
"
,
"
Steiners roman
"
,
""
),
(
"
f_strophoid
"
,
"
Strophoid
"
,
""
),
(
"
f_strophoid_2d
"
,
"
Strophoid 2d
"
,
""
),
(
"
f_superellipsoid
"
,
"
Superellipsoid
"
,
""
),
(
"
f_th
"
,
"
Th
"
,
""
),
(
"
f_torus
"
,
"
Torus
"
,
""
),
(
"
f_torus2
"
,
"
Torus2
"
,
""
),
(
"
f_torus_gumdrop
"
,
"
Torus gumdrop
"
,
""
),
(
"
f_umbrella
"
,
"
Umbrella
"
,
""
),
(
"
f_witch_of_agnesi
"
,
"
Witch of agnesi
"
,
""
),
(
"
f_witch_of_agnesi_2d
"
,
"
Witch of agnesi 2d
"
,
""
)),
default
=
'
NONE
'
)
func_x
=
FloatProperty
(
name
=
"
FX
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_plus_x
=
EnumProperty
(
name
=
"
Func plus x
"
,
description
=
""
,
items
=
((
'
NONE
'
,
"
None
"
,
""
),
(
'
increase
'
,
"
*
"
,
""
),
(
'
plus
'
,
"
+
"
,
""
)),
default
=
'
NONE
'
)
func_y
=
FloatProperty
(
name
=
"
FY
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_plus_y
=
EnumProperty
(
name
=
"
Func plus y
"
,
description
=
""
,
items
=
((
'
NONE
'
,
"
None
"
,
""
),
(
'
increase
'
,
"
*
"
,
""
),
(
'
plus
'
,
"
+
"
,
""
)),
default
=
'
NONE
'
)
func_z
=
FloatProperty
(
name
=
"
FZ
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_plus_z
=
EnumProperty
(
name
=
"
Func plus z
"
,
description
=
""
,
items
=
((
'
NONE
'
,
"
None
"
,
""
),
(
'
increase
'
,
"
*
"
,
""
),
(
'
plus
'
,
"
+
"
,
""
)),
default
=
'
NONE
'
)
func_P0
=
FloatProperty
(
name
=
"
P0
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P1
=
FloatProperty
(
name
=
"
P1
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P2
=
FloatProperty
(
name
=
"
P2
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P3
=
FloatProperty
(
name
=
"
P3
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P4
=
FloatProperty
(
name
=
"
P4
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P5
=
FloatProperty
(
name
=
"
P5
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P6
=
FloatProperty
(
name
=
"
P6
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P7
=
FloatProperty
(
name
=
"
P7
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P8
=
FloatProperty
(
name
=
"
P8
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
func_P9
=
FloatProperty
(
name
=
"
P9
"
,
description
=
""
,
min
=
0.0
,
max
=
25.0
,
default
=
1.0
)
#########################################
tex_rot_x
=
FloatProperty
(
name
=
"
Rotate X
"
,
description
=
""
,
min
=-
180.0
,
max
=
180.0
,
default
=
0.0
)
tex_rot_y
=
FloatProperty
(
name
=
"
Rotate Y
"
,
description
=
""
,
min
=-
180.0
,
max
=
180.0
,
default
=
0.0
)
tex_rot_z
=
FloatProperty
(
name
=
"
Rotate Z
"
,
description
=
""
,
min
=-
180.0
,
max
=
180.0
,
default
=
0.0
)
tex_mov_x
=
FloatProperty
(
name
=
"
Move X
"
,
description
=
""
,
min
=-
100000.0
,
max
=
100000.0
,
default
=
0.0
)
tex_mov_y
=
FloatProperty
(
name
=
"
Move Y
"
,
description
=
""
,
min
=-
100000.0
,
max
=
100000.0
,
default
=
0.0
)
tex_mov_z
=
FloatProperty
(
name
=
"
Move Z
"
,
description
=
""
,
min
=-
100000.0
,
max
=
100000.0
,
default
=
0.0
)
tex_scale_x
=
FloatProperty
(
name
=
"
Scale X
"
,
description
=
""
,
min
=
0.0
,
max
=
10000.0
,
default
=
1.0
)
tex_scale_y
=
FloatProperty
(
name
=
"
Scale Y
"
,
description
=
""
,
min
=
0.0
,
max
=
10000.0
,
default
=
1.0
)
tex_scale_z
=
FloatProperty
(
name
=
"
Scale Z
"
,
description
=
""
,
min
=
0.0
,
max
=
10000.0
,
default
=
1.0
)
###############################################################################
# Object POV properties.
###############################################################################
...
...
@@ -530,10 +979,12 @@ class PovrayPreferences(AddonPreferences):
layout
=
self
.
layout
layout
.
prop
(
self
,
"
filepath_povray
"
)
def
register
():
bpy
.
utils
.
register_module
(
__name__
)
#bpy.types.TEXTURE_PT_context_texture.prepend(TEXTURE_PT_povray_type)
bpy
.
types
.
Scene
.
pov
=
PointerProperty
(
type
=
RenderPovSettingsScene
)
bpy
.
types
.
Material
.
pov
=
PointerProperty
(
type
=
RenderPovSettingsMaterial
)
bpy
.
types
.
Texture
.
pov
=
PointerProperty
(
type
=
RenderPovSettingsTexture
)
...
...
@@ -544,7 +995,7 @@ def register():
def
unregister
():
bpy
.
utils
.
unregister_module
(
__name__
)
#bpy.types.TEXTURE_PT_context_texture.remove(TEXTURE_PT_povray_type)
del
bpy
.
types
.
Scene
.
pov
del
bpy
.
types
.
Material
.
pov
del
bpy
.
types
.
Texture
.
pov
...
...
This diff is collapsed.
Click to expand it.
render_povray/render.py
+
783
−
98
View file @
07d03141
This diff is collapsed.
Click to expand it.
render_povray/ui.py
+
282
−
9
View file @
07d03141
...
...
@@ -57,6 +57,7 @@ for member in dir(properties_data_mesh):
del
properties_data_mesh
from
bl_ui
import
properties_texture
from
bl_ui.properties_texture
import
context_tex_datablock
for
member
in
dir
(
properties_texture
):
subclass
=
getattr
(
properties_texture
,
member
)
try
:
...
...
@@ -65,6 +66,7 @@ for member in dir(properties_texture):
pass
del
properties_texture
from
bl_ui
import
properties_data_camera
for
member
in
dir
(
properties_data_camera
):
subclass
=
getattr
(
properties_data_camera
,
member
)
...
...
@@ -130,6 +132,14 @@ class TextureButtonsPanel():
rd
=
context
.
scene
.
render
return
tex
and
(
rd
.
use_game_engine
is
False
)
and
(
rd
.
engine
in
cls
.
COMPAT_ENGINES
)
# class TextureTypePanel(TextureButtonsPanel):
# @classmethod
# def poll(cls, context):
# tex = context.texture
# engine = context.scene.render.engine
# return tex and ((tex.type == cls.tex_type and not tex.use_nodes) and (engine in cls.COMPAT_ENGINES))
class
ObjectButtonsPanel
():
bl_space_type
=
'
PROPERTIES
'
...
...
@@ -156,11 +166,22 @@ class CameraDataButtonsPanel():
rd
=
context
.
scene
.
render
return
cam
and
(
rd
.
use_game_engine
is
False
)
and
(
rd
.
engine
in
cls
.
COMPAT_ENGINES
)
class
WorldButtonsPanel
():
bl_space_type
=
'
PROPERTIES
'
bl_region_type
=
'
WINDOW
'
bl_context
=
"
world
"
# COMPAT_ENGINES must be defined in each subclass, external engines can add themselves here
@classmethod
def
poll
(
cls
,
context
):
wld
=
context
.
world
rd
=
context
.
scene
.
render
return
wld
and
(
rd
.
use_game_engine
is
False
)
and
(
rd
.
engine
in
cls
.
COMPAT_ENGINES
)
class
TextButtonsPanel
():
bl_space_type
=
'
TEXT_EDITOR
'
bl_region_type
=
'
UI
'
bl_label
=
"
P
.O.
V-Ray
"
bl_label
=
"
P
O
V-Ray
"
# COMPAT_ENGINES must be defined in each subclass, external engines can add themselves here
@classmethod
...
...
@@ -174,6 +195,8 @@ class RENDER_PT_povray_export_settings(RenderButtonsPanel, bpy.types.Panel):
bl_label
=
"
Export Settings
"
COMPAT_ENGINES
=
{
'
POVRAY_RENDER
'
}
def
draw_header
(
self
,
context
):
self
.
layout
.
label
(
icon
=
'
CONSOLE
'
)
def
draw
(
self
,
context
):
layout
=
self
.
layout
...
...
@@ -187,6 +210,7 @@ class RENDER_PT_povray_export_settings(RenderButtonsPanel, bpy.types.Panel):
col
.
prop
(
scene
.
pov
,
"
command_line_switches
"
,
text
=
""
)
split
=
layout
.
split
()
split
.
prop
(
scene
.
pov
,
"
tempfiles_enable
"
,
text
=
"
OS Tempfiles
"
)
split
.
prop
(
scene
.
pov
,
"
pov_editor
"
,
text
=
"
POV Editor
"
)
if
not
scene
.
pov
.
tempfiles_enable
:
split
.
prop
(
scene
.
pov
,
"
deletefiles_enable
"
,
text
=
"
Delete files
"
)
...
...
@@ -209,13 +233,15 @@ class RENDER_PT_povray_export_settings(RenderButtonsPanel, bpy.types.Panel):
class
RENDER_PT_povray_render_settings
(
RenderButtonsPanel
,
bpy
.
types
.
Panel
):
bl_label
=
"
Render Settings
"
bl_icon
=
'
SETTINGS
'
COMPAT_ENGINES
=
{
'
POVRAY_RENDER
'
}
def
draw_header
(
self
,
context
):
self
.
layout
.
label
(
icon
=
'
SETTINGS
'
)
def
draw
(
self
,
context
):
layout
=
self
.
layout
scene
=
context
.
scene
layout
.
active
=
(
scene
.
pov
.
max_trace_level
!=
0
)
col
=
layout
.
column
()
...
...
@@ -243,8 +269,10 @@ class RENDER_PT_povray_antialias(RenderButtonsPanel, bpy.types.Panel):
def
draw_header
(
self
,
context
):
scene
=
context
.
scene
self
.
layout
.
prop
(
scene
.
pov
,
"
antialias_enable
"
,
text
=
""
)
if
scene
.
pov
.
antialias_enable
:
self
.
layout
.
prop
(
scene
.
pov
,
"
antialias_enable
"
,
text
=
""
,
icon
=
'
ANTIALIASED
'
)
else
:
self
.
layout
.
prop
(
scene
.
pov
,
"
antialias_enable
"
,
text
=
""
,
icon
=
'
ALIASED
'
)
def
draw
(
self
,
context
):
layout
=
self
.
layout
...
...
@@ -275,11 +303,12 @@ class RENDER_PT_povray_antialias(RenderButtonsPanel, bpy.types.Panel):
class
RENDER_PT_povray_radiosity
(
RenderButtonsPanel
,
bpy
.
types
.
Panel
):
bl_label
=
"
Radiosity
"
COMPAT_ENGINES
=
{
'
POVRAY_RENDER
'
}
def
draw_header
(
self
,
context
):
scene
=
context
.
scene
self
.
layout
.
prop
(
scene
.
pov
,
"
radio_enable
"
,
text
=
""
)
if
scene
.
pov
.
radio_enable
:
self
.
layout
.
prop
(
scene
.
pov
,
"
radio_enable
"
,
text
=
""
,
icon
=
'
RADIO
'
)
else
:
self
.
layout
.
prop
(
scene
.
pov
,
"
radio_enable
"
,
text
=
""
,
icon
=
'
RADIOBUT_OFF
'
)
def
draw
(
self
,
context
):
layout
=
self
.
layout
...
...
@@ -323,7 +352,7 @@ class RENDER_PT_povray_radiosity(RenderButtonsPanel, bpy.types.Panel):
split
.
prop
(
scene
.
pov
,
"
radio_always_sample
"
)
class
RENDER_PT_povray_media
(
Render
ButtonsPanel
,
bpy
.
types
.
Panel
):
class
RENDER_PT_povray_media
(
World
ButtonsPanel
,
bpy
.
types
.
Panel
):
bl_label
=
"
Atmosphere Media
"
COMPAT_ENGINES
=
{
'
POVRAY_RENDER
'
}
...
...
@@ -500,7 +529,251 @@ class MATERIAL_PT_povray_replacement_text(MaterialButtonsPanel, bpy.types.Panel)
col
.
label
(
text
=
"
Replace properties with:
"
)
col
.
prop
(
mat
.
pov
,
"
replacement_text
"
,
text
=
""
)
class
TEXTURE_PT_povray_type
(
TextureButtonsPanel
,
bpy
.
types
.
Panel
):
bl_label
=
"
POV-ray Textures
"
COMPAT_ENGINES
=
{
'
POVRAY_RENDER
'
}
bl_options
=
{
'
HIDE_HEADER
'
}
def
draw
(
self
,
context
):
layout
=
self
.
layout
tex
=
context
.
texture
split
=
layout
.
split
(
percentage
=
0.2
)
split
.
label
(
text
=
"
POV:
"
)
split
.
prop
(
tex
.
pov
,
"
tex_pattern_type
"
,
text
=
""
)
class
TEXTURE_PT_povray_preview
(
TextureButtonsPanel
,
bpy
.
types
.
Panel
):
bl_label
=
"
Preview
"
COMPAT_ENGINES
=
{
'
POVRAY_RENDER
'
}
bl_options
=
{
'
HIDE_HEADER
'
}
@classmethod
def
poll
(
cls
,
context
):
engine
=
context
.
scene
.
render
.
engine
if
not
hasattr
(
context
,
"
texture_slot
"
):
return
False
tex
=
context
.
texture
mat
=
context
.
material
return
(
tex
and
(
tex
.
pov
.
tex_pattern_type
!=
'
emulator
'
)
and
(
engine
in
cls
.
COMPAT_ENGINES
))
def
draw
(
self
,
context
):
tex
=
context
.
texture
slot
=
getattr
(
context
,
"
texture_slot
"
,
None
)
idblock
=
context_tex_datablock
(
context
)
layout
=
self
.
layout
# if idblock:
# layout.template_preview(tex, parent=idblock, slot=slot)
if
tex
.
pov
.
tex_pattern_type
!=
'
emulator
'
:
layout
.
operator
(
"
tex.preview_update
"
)
else
:
layout
.
template_preview
(
tex
,
slot
=
slot
)
class
TEXTURE_PT_povray_parameters
(
TextureButtonsPanel
,
bpy
.
types
.
Panel
):
bl_label
=
"
POV-ray Pattern Options
"
COMPAT_ENGINES
=
{
'
POVRAY_RENDER
'
}
def
draw
(
self
,
context
):
mat
=
context
.
material
layout
=
self
.
layout
tex
=
context
.
texture
align
=
True
if
tex
is
not
None
and
tex
.
pov
.
tex_pattern_type
!=
'
emulator
'
:
if
tex
.
pov
.
tex_pattern_type
==
'
agate
'
:
layout
.
prop
(
tex
.
pov
,
"
modifier_turbulence
"
,
text
=
"
Agate Turbulence
"
)
if
tex
.
pov
.
tex_pattern_type
in
{
'
spiral1
'
,
'
spiral2
'
}:
layout
.
prop
(
tex
.
pov
,
"
modifier_numbers
"
,
text
=
"
Number of arms
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
tiling
'
:
layout
.
prop
(
tex
.
pov
,
"
modifier_numbers
"
,
text
=
"
Pattern number
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
magnet
'
:
layout
.
prop
(
tex
.
pov
,
"
magnet_style
"
,
text
=
"
Magnet style
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
quilted
'
:
row
=
layout
.
row
(
align
=
align
)
row
.
prop
(
tex
.
pov
,
"
modifier_control0
"
,
text
=
"
Control0
"
)
row
.
prop
(
tex
.
pov
,
"
modifier_control1
"
,
text
=
"
Control1
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
brick
'
:
col
=
layout
.
column
(
align
=
align
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
brick_size_x
"
,
text
=
"
Brick size X
"
)
row
.
prop
(
tex
.
pov
,
"
brick_size_y
"
,
text
=
"
Brick size Y
"
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
brick_size_z
"
,
text
=
"
Brick size Z
"
)
row
.
prop
(
tex
.
pov
,
"
brick_mortar
"
,
text
=
"
Brick mortar
"
)
if
tex
.
pov
.
tex_pattern_type
in
{
'
julia
'
,
'
mandel
'
,
'
magnet
'
}:
col
=
layout
.
column
(
align
=
align
)
if
tex
.
pov
.
tex_pattern_type
==
'
julia
'
:
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
julia_complex_1
"
,
text
=
"
Complex 1
"
)
row
.
prop
(
tex
.
pov
,
"
julia_complex_2
"
,
text
=
"
Complex 2
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
magnet
'
and
tex
.
pov
.
magnet_style
==
'
julia
'
:
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
julia_complex_1
"
,
text
=
"
Complex 1
"
)
row
.
prop
(
tex
.
pov
,
"
julia_complex_2
"
,
text
=
"
Complex 2
"
)
row
=
col
.
row
()
if
tex
.
pov
.
tex_pattern_type
in
{
'
julia
'
,
'
mandel
'
}:
row
.
prop
(
tex
.
pov
,
"
f_exponent
"
,
text
=
"
Exponent
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
magnet
'
:
row
.
prop
(
tex
.
pov
,
"
magnet_type
"
,
text
=
"
Type
"
)
row
.
prop
(
tex
.
pov
,
"
f_iter
"
,
text
=
"
Iterations
"
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
f_ior
"
,
text
=
"
Interior
"
)
row
.
prop
(
tex
.
pov
,
"
f_ior_fac
"
,
text
=
"
Factor I
"
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
f_eor
"
,
text
=
"
Exterior
"
)
row
.
prop
(
tex
.
pov
,
"
f_eor_fac
"
,
text
=
"
Factor E
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
gradient
'
:
layout
.
label
(
text
=
"
Gradient orientation:
"
)
column_flow
=
layout
.
column_flow
(
columns
=
3
,
align
=
True
)
column_flow
.
prop
(
tex
.
pov
,
"
grad_orient_x
"
,
text
=
"
X
"
)
column_flow
.
prop
(
tex
.
pov
,
"
grad_orient_y
"
,
text
=
"
Y
"
)
column_flow
.
prop
(
tex
.
pov
,
"
grad_orient_z
"
,
text
=
"
Z
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
pavement
'
:
layout
.
prop
(
tex
.
pov
,
"
pave_sides
"
,
text
=
"
Pavement:number of sides
"
)
col
=
layout
.
column
(
align
=
align
)
column_flow
=
col
.
column_flow
(
columns
=
3
,
align
=
True
)
column_flow
.
prop
(
tex
.
pov
,
"
pave_tiles
"
,
text
=
"
Tiles
"
)
if
tex
.
pov
.
pave_sides
==
'
4
'
and
tex
.
pov
.
pave_tiles
==
6
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_35
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
6
'
and
tex
.
pov
.
pave_tiles
==
5
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_22
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
4
'
and
tex
.
pov
.
pave_tiles
==
5
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_12
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
3
'
and
tex
.
pov
.
pave_tiles
==
6
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_12
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
6
'
and
tex
.
pov
.
pave_tiles
==
4
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_7
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
4
'
and
tex
.
pov
.
pave_tiles
==
4
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_5
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
3
'
and
tex
.
pov
.
pave_tiles
==
5
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_4
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
6
'
and
tex
.
pov
.
pave_tiles
==
3
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_3
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
3
'
and
tex
.
pov
.
pave_tiles
==
4
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_3
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
4
'
and
tex
.
pov
.
pave_tiles
==
3
:
column_flow
.
prop
(
tex
.
pov
,
"
pave_pat_2
"
,
text
=
"
Pattern
"
)
if
tex
.
pov
.
pave_sides
==
'
6
'
and
tex
.
pov
.
pave_tiles
==
6
:
column_flow
.
label
(
text
=
"
!!! 5 tiles!
"
)
column_flow
.
prop
(
tex
.
pov
,
"
pave_form
"
,
text
=
"
Form
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
function
'
:
layout
.
prop
(
tex
.
pov
,
"
func_list
"
,
text
=
"
Functions
"
)
if
tex
.
pov
.
tex_pattern_type
==
'
function
'
and
tex
.
pov
.
func_list
!=
"
NONE
"
:
func
=
None
if
tex
.
pov
.
func_list
in
{
"
f_noise3d
"
,
"
f_ph
"
,
"
f_r
"
,
"
f_th
"
}:
func
=
0
if
tex
.
pov
.
func_list
in
{
"
f_comma
"
,
"
f_crossed_trough
"
,
"
f_cubic_saddle
"
,
"
f_cushion
"
,
"
f_devils_curve
"
,
"
f_enneper
"
,
"
f_glob
"
,
"
f_heart
"
,
"
f_hex_x
"
,
"
f_hex_y
"
,
"
f_hunt_surface
"
,
"
f_klein_bottle
"
,
"
f_kummer_surface_v1
"
,
"
f_lemniscate_of_gerono
"
,
"
f_mitre
"
,
"
f_nodal_cubic
"
,
"
f_noise_generator
"
,
"
f_odd
"
,
"
f_paraboloid
"
,
"
f_pillow
"
,
"
f_piriform
"
,
"
f_quantum
"
,
"
f_quartic_paraboloid
"
,
"
f_quartic_saddle
"
,
"
f_sphere
"
,
"
f_steiners_roman
"
,
"
f_torus_gumdrop
"
,
"
f_umbrella
"
}:
func
=
1
if
tex
.
pov
.
func_list
in
{
"
f_bicorn
"
,
"
f_bifolia
"
,
"
f_boy_surface
"
,
"
f_superellipsoid
"
,
"
f_torus
"
}:
func
=
2
if
tex
.
pov
.
func_list
in
{
"
f_ellipsoid
"
,
"
f_folium_surface
"
,
"
f_hyperbolic_torus
"
,
"
f_kampyle_of_eudoxus
"
,
"
f_parabolic_torus
"
,
"
f_quartic_cylinder
"
,
"
f_torus2
"
}:
func
=
3
if
tex
.
pov
.
func_list
in
{
"
f_blob2
"
,
"
f_cross_ellipsoids
"
,
"
f_flange_cover
"
,
"
f_isect_ellipsoids
"
,
"
f_kummer_surface_v2
"
,
"
f_ovals_of_cassini
"
,
"
f_rounded_box
"
,
"
f_spikes_2d
"
,
"
f_strophoid
"
}:
func
=
4
if
tex
.
pov
.
func_list
in
{
"
f_algbr_cyl1
"
,
"
f_algbr_cyl2
"
,
"
f_algbr_cyl3
"
,
"
f_algbr_cyl4
"
,
"
f_blob
"
,
"
f_mesh1
"
,
"
f_poly4
"
,
"
f_spikes
"
}:
func
=
5
if
tex
.
pov
.
func_list
in
{
"
f_devils_curve_2d
"
,
"
f_dupin_cyclid
"
,
"
f_folium_surface_2d
"
,
"
f_hetero_mf
"
,
"
f_kampyle_of_eudoxus_2d
"
,
"
f_lemniscate_of_gerono_2d
"
,
"
f_polytubes
"
,
"
f_ridge
"
,
"
f_ridged_mf
"
,
"
f_spiral
"
,
"
f_witch_of_agnesi
"
}:
func
=
6
if
tex
.
pov
.
func_list
in
{
"
f_helix1
"
,
"
f_helix2
"
,
"
f_piriform_2d
"
,
"
f_strophoid_2d
"
}:
func
=
7
if
tex
.
pov
.
func_list
==
"
f_helical_torus
"
:
func
=
8
column_flow
=
layout
.
column_flow
(
columns
=
3
,
align
=
True
)
column_flow
.
label
(
text
=
"
X
"
)
column_flow
.
prop
(
tex
.
pov
,
"
func_plus_x
"
,
text
=
""
)
column_flow
.
prop
(
tex
.
pov
,
"
func_x
"
,
text
=
"
Value
"
)
column_flow
=
layout
.
column_flow
(
columns
=
3
,
align
=
True
)
column_flow
.
label
(
text
=
"
Y
"
)
column_flow
.
prop
(
tex
.
pov
,
"
func_plus_y
"
,
text
=
""
)
column_flow
.
prop
(
tex
.
pov
,
"
func_y
"
,
text
=
"
Value
"
)
column_flow
=
layout
.
column_flow
(
columns
=
3
,
align
=
True
)
column_flow
.
label
(
text
=
"
Z
"
)
column_flow
.
prop
(
tex
.
pov
,
"
func_plus_z
"
,
text
=
""
)
column_flow
.
prop
(
tex
.
pov
,
"
func_z
"
,
text
=
"
Value
"
)
row
=
layout
.
row
(
align
=
align
)
if
func
>
0
:
row
.
prop
(
tex
.
pov
,
"
func_P0
"
,
text
=
"
P0
"
)
if
func
>
1
:
row
.
prop
(
tex
.
pov
,
"
func_P1
"
,
text
=
"
P1
"
)
row
=
layout
.
row
(
align
=
align
)
if
func
>
2
:
row
.
prop
(
tex
.
pov
,
"
func_P2
"
,
text
=
"
P2
"
)
if
func
>
3
:
row
.
prop
(
tex
.
pov
,
"
func_P3
"
,
text
=
"
P3
"
)
row
=
layout
.
row
(
align
=
align
)
if
func
>
4
:
row
.
prop
(
tex
.
pov
,
"
func_P4
"
,
text
=
"
P4
"
)
if
func
>
5
:
row
.
prop
(
tex
.
pov
,
"
func_P5
"
,
text
=
"
P5
"
)
row
=
layout
.
row
(
align
=
align
)
if
func
>
6
:
row
.
prop
(
tex
.
pov
,
"
func_P6
"
,
text
=
"
P6
"
)
if
func
>
7
:
row
.
prop
(
tex
.
pov
,
"
func_P7
"
,
text
=
"
P7
"
)
row
=
layout
.
row
(
align
=
align
)
row
.
prop
(
tex
.
pov
,
"
func_P8
"
,
text
=
"
P8
"
)
row
.
prop
(
tex
.
pov
,
"
func_P9
"
,
text
=
"
P9
"
)
###################################################End Patterns############################
layout
.
prop
(
tex
.
pov
,
"
warp_types
"
,
text
=
"
Warp types
"
)
#warp
if
tex
.
pov
.
warp_types
==
"
TOROIDAL
"
:
layout
.
prop
(
tex
.
pov
,
"
warp_tor_major_radius
"
,
text
=
"
Major radius
"
)
if
tex
.
pov
.
warp_types
not
in
{
"
CUBIC
"
,
"
NONE
"
}:
layout
.
prop
(
tex
.
pov
,
"
warp_orientation
"
,
text
=
"
Warp orientation
"
)
col
=
layout
.
column
(
align
=
align
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
warp_dist_exp
"
,
text
=
"
Distance exponent
"
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
modifier_frequency
"
,
text
=
"
Frequency
"
)
row
.
prop
(
tex
.
pov
,
"
modifier_phase
"
,
text
=
"
Phase
"
)
row
=
layout
.
row
()
row
.
label
(
text
=
"
Offset:
"
)
row
.
label
(
text
=
"
Scale:
"
)
row
.
label
(
text
=
"
Rotate:
"
)
col
=
layout
.
column
(
align
=
align
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
tex_mov_x
"
,
text
=
"
X
"
)
row
.
prop
(
tex
.
pov
,
"
tex_scale_x
"
,
text
=
"
X
"
)
row
.
prop
(
tex
.
pov
,
"
tex_rot_x
"
,
text
=
"
X
"
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
tex_mov_y
"
,
text
=
"
Y
"
)
row
.
prop
(
tex
.
pov
,
"
tex_scale_y
"
,
text
=
"
Y
"
)
row
.
prop
(
tex
.
pov
,
"
tex_rot_y
"
,
text
=
"
Y
"
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
tex_mov_z
"
,
text
=
"
Z
"
)
row
.
prop
(
tex
.
pov
,
"
tex_scale_z
"
,
text
=
"
Z
"
)
row
.
prop
(
tex
.
pov
,
"
tex_rot_z
"
,
text
=
"
Z
"
)
row
=
layout
.
row
()
row
.
label
(
text
=
"
Turbulence:
"
)
col
=
layout
.
column
(
align
=
align
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
warp_turbulence_x
"
,
text
=
"
X
"
)
row
.
prop
(
tex
.
pov
,
"
modifier_octaves
"
,
text
=
"
Octaves
"
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
warp_turbulence_y
"
,
text
=
"
Y
"
)
row
.
prop
(
tex
.
pov
,
"
modifier_lambda
"
,
text
=
"
Lambda
"
)
row
=
col
.
row
()
row
.
prop
(
tex
.
pov
,
"
warp_turbulence_z
"
,
text
=
"
Z
"
)
row
.
prop
(
tex
.
pov
,
"
modifier_omega
"
,
text
=
"
Omega
"
)
class
TEXTURE_PT_povray_tex_gamma
(
TextureButtonsPanel
,
bpy
.
types
.
Panel
):
bl_label
=
"
Image Gamma
"
COMPAT_ENGINES
=
{
'
POVRAY_RENDER
'
}
...
...
@@ -508,7 +781,7 @@ class TEXTURE_PT_povray_tex_gamma(TextureButtonsPanel, bpy.types.Panel):
def
draw_header
(
self
,
context
):
tex
=
context
.
texture
self
.
layout
.
prop
(
tex
.
pov
,
"
tex_gamma_enable
"
,
text
=
""
)
self
.
layout
.
prop
(
tex
.
pov
,
"
tex_gamma_enable
"
,
text
=
""
,
icon
=
'
SEQ_LUMA_WAVEFORM
'
)
def
draw
(
self
,
context
):
layout
=
self
.
layout
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment