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:
authorPhilipp Oeser <info@graphics-engineer.com>2019-07-03 19:35:06 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2019-07-04 13:32:25 +0300
commit711960b3c234d02ac11f11a22fd15436bdd489d5 (patch)
tree01a100b84929aa8ae67e53706cc809657326d4c0 /release/scripts/modules/bpy_extras
parent669d50f803cd2e053d8bdab2a6b470eb956bc210 (diff)
node_shader_utils: add possibility to override image colorspace
'is_data' since the move from 'cycles_shader_compat' (2.79) to 'PrincipledBSDFWrapper' (2.8) we lost the ability to (automatically) set this colorspace setting for imported textures. This was useful for e.g. normalmaps to always assume 'Non-Color' data. This adds the possibility to overide and uses this for normalmaps... Fixes T66368 Reviewers: mont29, brecht Maniphest Tasks: T66368 Differential Revision: https://developer.blender.org/D5176
Diffstat (limited to 'release/scripts/modules/bpy_extras')
-rw-r--r--release/scripts/modules/bpy_extras/node_shader_utils.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/release/scripts/modules/bpy_extras/node_shader_utils.py b/release/scripts/modules/bpy_extras/node_shader_utils.py
index 5e24050ebe3..01ccd51aada 100644
--- a/release/scripts/modules/bpy_extras/node_shader_utils.py
+++ b/release/scripts/modules/bpy_extras/node_shader_utils.py
@@ -496,6 +496,7 @@ class PrincipledBSDFWrapper(ShaderWrapper):
self, self.node_normalmap,
self.node_normalmap.inputs["Color"],
grid_row_diff=-2,
+ colorspace_is_data=True,
)
normalmap_texture = property(normalmap_texture_get)
@@ -521,6 +522,7 @@ class ShaderImageTextureWrapper():
"is_readonly",
"grid_row_diff",
"use_alpha",
+ "colorspace_is_data",
*NODES_LIST,
)
@@ -532,13 +534,15 @@ class ShaderImageTextureWrapper():
owner_shader._textures[(node_dst, socket_dst)] = instance
return instance
- def __init__(self, owner_shader: ShaderWrapper, node_dst, socket_dst, grid_row_diff=0, use_alpha=False):
+ def __init__(self, owner_shader: ShaderWrapper, node_dst, socket_dst, grid_row_diff=0,
+ use_alpha=False, colorspace_is_data=...):
self.owner_shader = owner_shader
self.is_readonly = owner_shader.is_readonly
self.node_dst = node_dst
self.socket_dst = socket_dst
self.grid_row_diff = grid_row_diff
self.use_alpha = use_alpha
+ self.colorspace_is_data = colorspace_is_data
self._node_image = ...
self._node_mapping = ...
@@ -639,6 +643,8 @@ class ShaderImageTextureWrapper():
@_set_check
def image_set(self, image):
+ if self.colorspace_is_data is not ...:
+ image.colorspace_settings.is_data = self.colorspace_is_data
self.node_image.image = image
image = property(image_get, image_set)