Commit: 8cc123a387db5989714b133247c0c55aa9cb3f8c
Author: Brecht Van Lommel
Date:   Sun Jul 3 13:08:21 2016 +0200
Branches: master
https://developer.blender.org/rB8cc123a387db5989714b133247c0c55aa9cb3f8c

Fix T48783: OSL render errors after recent refactoring.

===================================================================

M       intern/cycles/kernel/osl/osl_services.cpp
M       intern/cycles/kernel/shaders/CMakeLists.txt
M       intern/cycles/kernel/shaders/node_image_texture.osl
A       intern/cycles/kernel/shaders/node_rgb_to_bw.osl
M       intern/cycles/render/nodes.cpp

===================================================================

diff --git a/intern/cycles/kernel/osl/osl_services.cpp 
b/intern/cycles/kernel/osl/osl_services.cpp
index ebe739e..acc6887 100644
--- a/intern/cycles/kernel/osl/osl_services.cpp
+++ b/intern/cycles/kernel/osl/osl_services.cpp
@@ -912,7 +912,7 @@ bool OSLRenderServices::texture(ustring filename,
 #endif
        bool status;
 
-       if(filename[0] == '@') {
+       if(filename.length() && filename[0] == '@') {
                int slot = atoi(filename.c_str() + 1);
                float4 rgba = kernel_tex_image_interp(slot, s, 1.0f - t);
 
@@ -993,7 +993,7 @@ bool OSLRenderServices::texture3d(ustring filename,
        }
 
        bool status;
-       if(filename[0] == '@') {
+       if(filename.length() && filename[0] == '@') {
                int slot = atoi(filename.c_str() + 1);
                float4 rgba = kernel_tex_image_interp_3d(slot, P.x, P.y, P.z);
 
diff --git a/intern/cycles/kernel/shaders/CMakeLists.txt 
b/intern/cycles/kernel/shaders/CMakeLists.txt
index 49030f3..b43f840 100644
--- a/intern/cycles/kernel/shaders/CMakeLists.txt
+++ b/intern/cycles/kernel/shaders/CMakeLists.txt
@@ -81,6 +81,7 @@ set(SRC_OSL
        node_wireframe.osl
        node_hair_bsdf.osl
        node_uv_map.osl
+       node_rgb_to_bw.osl
 )
 
 set(SRC_OSL_HEADERS
diff --git a/intern/cycles/kernel/shaders/node_image_texture.osl 
b/intern/cycles/kernel/shaders/node_image_texture.osl
index a004018..7cd2922 100644
--- a/intern/cycles/kernel/shaders/node_image_texture.osl
+++ b/intern/cycles/kernel/shaders/node_image_texture.osl
@@ -88,7 +88,7 @@ shader node_image_texture(
        string color_space = "sRGB",
        string projection = "flat",
        string interpolation = "smartcubic",
-       string wrap = "periodic",
+       string extension = "periodic",
        float projection_blend = 0.0,
        int is_float = 1,
        int use_alpha = 1,
@@ -108,7 +108,7 @@ shader node_image_texture(
                                             use_alpha,
                                             is_float,
                                             interpolation,
-                                            wrap);
+                                            extension);
        }
        else if (projection == "box") {
                /* object space normal */
@@ -184,7 +184,7 @@ shader node_image_texture(
                                                                  use_alpha,
                                                                  is_float,
                                                                  interpolation,
-                                                                 wrap);
+                                                                 extension);
                        Alpha += weight[0] * tmp_alpha;
                }
                if (weight[1] > 0.0) {
@@ -195,7 +195,7 @@ shader node_image_texture(
                                                                  use_alpha,
                                                                  is_float,
                                                                  interpolation,
-                                                                 wrap);
+                                                                 extension);
                        Alpha += weight[1] * tmp_alpha;
                }
                if (weight[2] > 0.0) {
@@ -206,7 +206,7 @@ shader node_image_texture(
                                                                  use_alpha,
                                                                  is_float,
                                                                  interpolation,
-                                                                 wrap);
+                                                                 extension);
                        Alpha += weight[2] * tmp_alpha;
                }
        }
@@ -219,7 +219,7 @@ shader node_image_texture(
                                             use_alpha,
                                             is_float,
                                             interpolation,
-                                            wrap);
+                                            extension);
        }
        else if (projection == "tube") {
                point projected = map_to_tube(texco_remap_square(p));
@@ -230,6 +230,6 @@ shader node_image_texture(
                                             use_alpha,
                                             is_float,
                                             interpolation,
-                                            wrap);
+                                            extension);
        }
 }
diff --git a/intern/cycles/kernel/shaders/node_rgb_to_bw.osl 
b/intern/cycles/kernel/shaders/node_rgb_to_bw.osl
new file mode 100644
index 0000000..903dfcd
--- /dev/null
+++ b/intern/cycles/kernel/shaders/node_rgb_to_bw.osl
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2011-2013 Blender Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "stdosl.h"
+
+shader node_rgb_to_bw(
+       color Color = 0.0,
+       output float Val = 0.0)
+{
+       Val = Color[0] * 0.2126 + Color[1] * 0.7152 + Color[2] * 0.0722;
+}
+
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index b38135f..15b55d1 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -1596,7 +1596,7 @@ void RGBToBWNode::compile(SVMCompiler& compiler)
 
 void RGBToBWNode::compile(OSLCompiler& compiler)
 {
-       compiler.add(this, "node_convert_from_color");
+       compiler.add(this, "node_rgb_to_bw");
 }
 
 /* Convert */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to