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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/blender/addon/version_update.py')
-rw-r--r--intern/cycles/blender/addon/version_update.py72
1 files changed, 42 insertions, 30 deletions
diff --git a/intern/cycles/blender/addon/version_update.py b/intern/cycles/blender/addon/version_update.py
index 7fb43af8b7c..6f005727b95 100644
--- a/intern/cycles/blender/addon/version_update.py
+++ b/intern/cycles/blender/addon/version_update.py
@@ -47,10 +47,10 @@ def foreach_cycles_nodetree():
yield nodetree, world.library
foreach_cycles_nodetree_group(nodetree, traversed)
- for lamp in bpy.data.lamps:
- nodetree = lamp.node_tree
+ for light in bpy.data.lights:
+ nodetree = light.node_tree
if nodetree:
- yield nodetree, lamp.library
+ yield nodetree, light.library
foreach_cycles_nodetree_group(nodetree, traversed)
@@ -59,10 +59,10 @@ def displacement_node_insert(nodetree):
displacement_links = []
for link in nodetree.links:
if (
- link.to_node.bl_idname == 'ShaderNodeOutputMaterial' and
- link.from_node.bl_idname != 'ShaderNodeDisplacement' and
- link.to_socket.identifier == 'Displacement'
- ):
+ link.to_node.bl_idname == 'ShaderNodeOutputMaterial' and
+ link.from_node.bl_idname != 'ShaderNodeDisplacement' and
+ link.to_socket.identifier == 'Displacement'
+ ):
displacement_links.append(link)
# Replace links with displacement node
@@ -84,7 +84,6 @@ def displacement_node_insert(nodetree):
nodetree.links.new(node.outputs['Displacement'], to_socket)
-
def displacement_principled_nodes(node):
if node.bl_idname == 'ShaderNodeDisplacement':
if node.space != 'WORLD':
@@ -238,9 +237,9 @@ def ambient_occlusion_node_relink(nodetree):
@persistent
def do_versions(self):
- if bpy.context.user_preferences.version <= (2, 78, 1):
- prop = bpy.context.user_preferences.addons[__package__].preferences
- system = bpy.context.user_preferences.system
+ if bpy.context.preferences.version <= (2, 78, 1):
+ prop = bpy.context.preferences.addons[__package__].preferences
+ system = bpy.context.preferences.system
if not prop.is_property_set("compute_device_type"):
# Device might not currently be available so this can fail
try:
@@ -268,7 +267,7 @@ def do_versions(self):
library_versions.setdefault(library.version, []).append(library)
# Do versioning per library, since they might have different versions.
- max_need_versioning = (2, 79, 6)
+ max_need_versioning = (2, 80, 41)
for version, libraries in library_versions.items():
if version > max_need_versioning:
continue
@@ -282,12 +281,9 @@ def do_versions(self):
if version <= (2, 70, 0):
cscene = scene.cycles
sample_clamp = cscene.get("sample_clamp", False)
- if (
- sample_clamp and
+ if (sample_clamp and
not cscene.is_property_set("sample_clamp_direct") and
- not cscene.is_property_set("sample_clamp_indirect")
- ):
-
+ not cscene.is_property_set("sample_clamp_indirect")):
cscene.sample_clamp_direct = sample_clamp
cscene.sample_clamp_indirect = sample_clamp
@@ -300,11 +296,9 @@ def do_versions(self):
# Caustics Reflective/Refractive separation in 272
if version <= (2, 72, 0):
cscene = scene.cycles
- if (
- cscene.get("no_caustics", False) and
+ if (cscene.get("no_caustics", False) and
not cscene.is_property_set("caustics_reflective") and
- not cscene.is_property_set("caustics_refractive")
- ):
+ not cscene.is_property_set("caustics_refractive")):
cscene.caustics_reflective = False
cscene.caustics_refractive = False
@@ -358,16 +352,16 @@ def do_versions(self):
cscene.sample_clamp_indirect = 0.0
# Lamps
- for lamp in bpy.data.lamps:
- if lamp.library not in libraries:
+ for light in bpy.data.lights:
+ if light.library not in libraries:
continue
if version <= (2, 76, 5):
- clamp = lamp.cycles
+ clight = light.cycles
# MIS
- if not clamp.is_property_set("use_multiple_importance_sampling"):
- clamp.use_multiple_importance_sampling = False
+ if not clight.is_property_set("use_multiple_importance_sampling"):
+ clight.use_multiple_importance_sampling = False
# Worlds
for world in bpy.data.worlds:
@@ -385,7 +379,8 @@ def do_versions(self):
if not cworld.is_property_set("sample_map_resolution"):
cworld.sample_map_resolution = 256
- if version <= (2, 79, 4):
+ if version <= (2, 79, 4) or \
+ (version >= (2, 80, 0) and version <= (2, 80, 18)):
cworld = world.cycles
# World MIS
if not cworld.is_property_set("sampling_method"):
@@ -411,7 +406,8 @@ def do_versions(self):
cmat.displacement_method = 'BUMP'
# Change default to bump again.
- if version <= (2, 79, 6):
+ if version <= (2, 79, 6) or \
+ (version >= (2, 80, 0) and version <= (2, 80, 41)):
cmat = mat.cycles
if not cmat.is_property_set("displacement_method"):
cmat.displacement_method = 'DISPLACEMENT'
@@ -430,17 +426,33 @@ def do_versions(self):
for node in nodetree.nodes:
vector_curve_node_remap(node)
- if version <= (2, 79, 1):
+ if version <= (2, 79, 1) or \
+ (version >= (2, 80, 0) and version <= (2, 80, 3)):
displacement_node_insert(nodetree)
if version <= (2, 79, 2):
for node in nodetree.nodes:
displacement_principled_nodes(node)
- if version <= (2, 79, 3):
+ if version <= (2, 79, 3) or \
+ (version >= (2, 80, 0) and version <= (2, 80, 4)):
# Switch to squared roughness convention
square_roughness_node_insert(nodetree)
if version <= (2, 79, 4):
ambient_occlusion_node_relink(nodetree)
+ # Particles
+ for part in bpy.data.particles:
+ if part.library not in libraries:
+ continue
+
+ # Copy cycles hair settings to internal settings
+ if version <= (2, 80, 15):
+ cpart = part.get("cycles", None)
+ if cpart:
+ part.shape = cpart.get("shape", 0.0)
+ part.root_radius = cpart.get("root_width", 1.0)
+ part.tip_radius = cpart.get("tip_width", 0.0)
+ part.radius_scale = cpart.get("radius_scale", 0.01)
+ part.use_close_tip = cpart.get("use_closetip", True)