From be51d671b500e8b6881295778de7272a70504b71 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Mar 2021 20:42:06 +0100 Subject: Fix T86121: Cycles Attribute returning wrong results with OSL Fix uninitialized variable in the OSL shader. --- intern/cycles/kernel/shaders/node_attribute.osl | 2 +- intern/cycles/kernel/shaders/node_light_path.osl | 10 +++++----- intern/cycles/kernel/shaders/node_normal_map.osl | 2 +- intern/cycles/kernel/shaders/node_tangent.osl | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/intern/cycles/kernel/shaders/node_attribute.osl b/intern/cycles/kernel/shaders/node_attribute.osl index 205d0a21bed..b7f35956ec7 100644 --- a/intern/cycles/kernel/shaders/node_attribute.osl +++ b/intern/cycles/kernel/shaders/node_attribute.osl @@ -23,7 +23,7 @@ shader node_attribute(string bump_offset = "center", output float Fac = 0.0, output float Alpha = 0.0) { - float data[4]; + float data[4] = {0.0, 0.0, 0.0, 0.0}; getattribute(name, data); Color = color(data[0], data[1], data[2]); Vector = point(Color); diff --git a/intern/cycles/kernel/shaders/node_light_path.osl b/intern/cycles/kernel/shaders/node_light_path.osl index 4ff06915771..ba268db288c 100644 --- a/intern/cycles/kernel/shaders/node_light_path.osl +++ b/intern/cycles/kernel/shaders/node_light_path.osl @@ -42,23 +42,23 @@ shader node_light_path(output float IsCameraRay = 0.0, getattribute("path:ray_length", RayLength); - int ray_depth; + int ray_depth = 0; getattribute("path:ray_depth", ray_depth); RayDepth = (float)ray_depth; - int diffuse_depth; + int diffuse_depth = 0; getattribute("path:diffuse_depth", diffuse_depth); DiffuseDepth = (float)diffuse_depth; - int glossy_depth; + int glossy_depth = 0; getattribute("path:glossy_depth", glossy_depth); GlossyDepth = (float)glossy_depth; - int transparent_depth; + int transparent_depth = 0; getattribute("path:transparent_depth", transparent_depth); TransparentDepth = (float)transparent_depth; - int transmission_depth; + int transmission_depth = 0; getattribute("path:transmission_depth", transmission_depth); TransmissionDepth = (float)transmission_depth; } diff --git a/intern/cycles/kernel/shaders/node_normal_map.osl b/intern/cycles/kernel/shaders/node_normal_map.osl index 912960f13ab..6d4780f6dae 100644 --- a/intern/cycles/kernel/shaders/node_normal_map.osl +++ b/intern/cycles/kernel/shaders/node_normal_map.osl @@ -31,7 +31,7 @@ shader node_normal_map(normal NormalIn = N, vector tangent; vector ninterp; float tangent_sign; - float is_smooth; + float is_smooth = 0.0; getattribute("geom:is_smooth", is_smooth); if (!is_smooth) { diff --git a/intern/cycles/kernel/shaders/node_tangent.osl b/intern/cycles/kernel/shaders/node_tangent.osl index 83f19a4610b..f086fa079ec 100644 --- a/intern/cycles/kernel/shaders/node_tangent.osl +++ b/intern/cycles/kernel/shaders/node_tangent.osl @@ -22,7 +22,7 @@ shader node_tangent(normal NormalIn = N, string axis = "z", output normal Tangent = normalize(dPdu)) { - vector T; + vector T = vector(0.0, 0.0, 0.0); if (direction_type == "uv_map") { getattribute(attr_name, T); -- cgit v1.2.3