diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-13 18:32:08 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-13 18:32:08 +0400 |
commit | 922bb24865f451aabb1a3112ab8ffb592e3ff875 (patch) | |
tree | a1f987fa10cce158860b54664616b723235e3940 /intern/cycles/kernel/osl/nodes | |
parent | 50d1a5b1eb3735da999cd38474a7dc859a884383 (diff) |
Cycles: color space control for image/environment texture nodes. Ideally would
be automated but need to think about how to do this, not so simply in a node
system. But guideline for now is, for color textures set to sRGB, for things like
bump or roughness map, set to Linear.
Diffstat (limited to 'intern/cycles/kernel/osl/nodes')
-rw-r--r-- | intern/cycles/kernel/osl/nodes/node_environment_texture.osl | 4 | ||||
-rw-r--r-- | intern/cycles/kernel/osl/nodes/node_image_texture.osl | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl index 569b22d53ec..ee3fc44f0f8 100644 --- a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_environment_texture.osl @@ -21,8 +21,12 @@ shader node_environment_texture( vector Vector = P, string filename = "", + string color_space = "sRGB", output color Color = color(0.0, 0.0, 0.0)) { Color = (color)environment(filename, Vector); + + if(color_space == "sRGB") + Color = color_srgb_to_scene_linear(Color); } diff --git a/intern/cycles/kernel/osl/nodes/node_image_texture.osl b/intern/cycles/kernel/osl/nodes/node_image_texture.osl index 0dbcc122deb..e1efb787655 100644 --- a/intern/cycles/kernel/osl/nodes/node_image_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_image_texture.osl @@ -21,8 +21,12 @@ shader node_image_texture( point Vector = P, string filename = "", + string color_space = "sRGB", output color Color = color(0.0, 0.0, 0.0)) { Color = (color)texture(filename, Vector[0], 1.0-Vector[1], "wrap", "periodic"); + + if(color_space == "sRGB") + Color = color_srgb_to_scene_linear(Color); } |