diff options
author | Ethan-Hall <Ethan1080> | 2022-03-07 19:34:52 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2022-03-07 19:35:48 +0300 |
commit | 5b4ab896634fd118cb46740f6f90e45f96d550ac (patch) | |
tree | fbe8bae09fd3c9bcc75176621c2b434dd5690282 /intern/cycles/kernel/osl/services.cpp | |
parent | 76f9d83a19b9804f3f8997c35f4f77ace2d6fcbc (diff) |
Shader Nodes: add Alpha output to Object Info node
An alpha component can be specified for an object's color. This adds an alpha
socket to the object info shader node allowing for the alpha component of the
object's color to be accessed in the shader editor.
Differential Revision: https://developer.blender.org/D14141
Diffstat (limited to 'intern/cycles/kernel/osl/services.cpp')
-rw-r--r-- | intern/cycles/kernel/osl/services.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/intern/cycles/kernel/osl/services.cpp b/intern/cycles/kernel/osl/services.cpp index 85bdb47600e..79547872c68 100644 --- a/intern/cycles/kernel/osl/services.cpp +++ b/intern/cycles/kernel/osl/services.cpp @@ -76,6 +76,7 @@ ustring OSLRenderServices::u_raster("raster"); ustring OSLRenderServices::u_ndc("NDC"); ustring OSLRenderServices::u_object_location("object:location"); ustring OSLRenderServices::u_object_color("object:color"); +ustring OSLRenderServices::u_object_alpha("object:alpha"); ustring OSLRenderServices::u_object_index("object:index"); ustring OSLRenderServices::u_geom_dupli_generated("geom:dupli_generated"); ustring OSLRenderServices::u_geom_dupli_uv("geom:dupli_uv"); @@ -873,6 +874,10 @@ bool OSLRenderServices::get_object_standard_attribute(const KernelGlobalsCPU *kg float3 f = object_color(kg, sd->object); return set_attribute_float3(f, type, derivatives, val); } + else if (name == u_object_alpha) { + float f = object_alpha(kg, sd->object); + return set_attribute_float(f, type, derivatives, val); + } else if (name == u_object_index) { float f = object_pass_id(kg, sd->object); return set_attribute_float(f, type, derivatives, val); |