Cycles: make shader node enums consistently lower case, update OSL shaders accordingly.

This commit is contained in:
Brecht Van Lommel 2016-06-11 21:56:47 +02:00
parent b8112a8960
commit ebdd2e0b6d
22 changed files with 225 additions and 225 deletions

View File

@ -45,9 +45,9 @@ shader node_anisotropic_bsdf(
RoughnessV = Roughness / (1.0 - aniso);
}
if (distribution == "Sharp")
if (distribution == "sharp")
BSDF = Color * reflection(Normal);
else if (distribution == "Beckmann")
else if (distribution == "beckmann")
BSDF = Color * microfacet_beckmann_aniso(Normal, T, RoughnessU, RoughnessV);
else if (distribution == "GGX")
BSDF = Color * microfacet_ggx_aniso(Normal, T, RoughnessU, RoughnessV);

View File

@ -44,7 +44,7 @@ shader node_environment_texture(
matrix mapping = matrix(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
vector Vector = P,
string filename = "",
string projection = "Equirectangular",
string projection = "equirectangular",
string interpolation = "linear",
string color_space = "sRGB",
int is_float = 1,
@ -59,7 +59,7 @@ shader node_environment_texture(
p = normalize(p);
if (projection == "Equirectangular")
if (projection == "equirectangular")
p = environment_texture_direction_to_equirectangular(p);
else
p = environment_texture_direction_to_mirrorball(p);

View File

@ -19,7 +19,7 @@
shader node_glass_bsdf(
color Color = 0.8,
string distribution = "Sharp",
string distribution = "sharp",
float Roughness = 0.2,
float IOR = 1.45,
normal Normal = N,
@ -30,9 +30,9 @@ shader node_glass_bsdf(
float cosi = dot(I, Normal);
float Fr = fresnel_dielectric_cos(cosi, eta);
if (distribution == "Sharp")
if (distribution == "sharp")
BSDF = Color * (Fr * reflection(Normal) + (1.0 - Fr) * refraction(Normal, eta));
else if (distribution == "Beckmann")
else if (distribution == "beckmann")
BSDF = Color * (Fr * microfacet_beckmann(Normal, Roughness) +
(1.0 - Fr) * microfacet_beckmann_refraction(Normal, Roughness, eta));
else if (distribution == "GGX")

View File

@ -24,9 +24,9 @@ shader node_glossy_bsdf(
normal Normal = N,
output closure color BSDF = 0)
{
if (distribution == "Sharp")
if (distribution == "sharp")
BSDF = Color * reflection(Normal);
else if (distribution == "Beckmann")
else if (distribution == "beckmann")
BSDF = Color * microfacet_beckmann(Normal, Roughness);
else if (distribution == "GGX")
BSDF = Color * microfacet_ggx(Normal, Roughness);

View File

@ -29,31 +29,31 @@ float gradient(point p, string type)
float result = 0.0;
if (type == "Linear") {
if (type == "linear") {
result = x;
}
else if (type == "Quadratic") {
else if (type == "quadratic") {
float r = max(x, 0.0);
result = r * r;
}
else if (type == "Easing") {
else if (type == "easing") {
float r = min(max(x, 0.0), 1.0);
float t = r * r;
result = (3.0 * t - 2.0 * t * r);
}
else if (type == "Diagonal") {
else if (type == "diagonal") {
result = (x + y) * 0.5;
}
else if (type == "Radial") {
else if (type == "radial") {
result = atan2(y, x) / M_2PI + 0.5;
}
else {
float r = max(1.0 - sqrt(x * x + y * y + z * z), 0.0);
if (type == "Quadratic Sphere")
if (type == "quadratic_sphere")
result = r * r;
else if (type == "Spherical")
else if (type == "spherical")
result = r;
}
@ -63,7 +63,7 @@ float gradient(point p, string type)
shader node_gradient_texture(
int use_mapping = 0,
matrix mapping = matrix(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
string type = "Linear",
string type = "linear",
point Vector = P,
output float Fac = 0.0,
output color Color = 0.0)

View File

@ -20,7 +20,7 @@
shader node_hair_bsdf(
color Color = 0.8,
string component = "Reflection",
string component = "reflection",
float Offset = 0.0,
float RoughnessU = 0.1,
float RoughnessV = 1.0,
@ -37,7 +37,7 @@ shader node_hair_bsdf(
BSDF = transparent();
}
else {
if (component == "Reflection")
if (component == "reflection")
BSDF = Color * hair_reflection(Normal, roughnessh, roughnessv, normalize(dPdv), 0.0);
else
BSDF = Color * hair_transmission(Normal, roughnessh, roughnessv, normalize(dPdv), 0.0);
@ -48,7 +48,7 @@ shader node_hair_bsdf(
BSDF = transparent();
}
else {
if (component == "Reflection")
if (component == "reflection")
BSDF = Color * hair_reflection(Normal, roughnessh, roughnessv, dPdu, -Offset);
else
BSDF = Color * hair_transmission(Normal, roughnessh, roughnessv, dPdu, -Offset);

View File

@ -86,7 +86,7 @@ shader node_image_texture(
point Vector = P,
string filename = "",
string color_space = "sRGB",
string projection = "Flat",
string projection = "flat",
string interpolation = "smartcubic",
string wrap = "periodic",
float projection_blend = 0.0,
@ -100,7 +100,7 @@ shader node_image_texture(
if (use_mapping)
p = transform(mapping, p);
if (projection == "Flat") {
if (projection == "flat") {
Color = image_texture_lookup(filename,
color_space,
p[0], p[1],
@ -110,7 +110,7 @@ shader node_image_texture(
interpolation,
wrap);
}
else if (projection == "Box") {
else if (projection == "box") {
/* object space normal */
vector Nob = transform("world", "object", N);
@ -210,7 +210,7 @@ shader node_image_texture(
Alpha += weight[2] * tmp_alpha;
}
}
else if (projection == "Sphere") {
else if (projection == "sphere") {
point projected = map_to_sphere(texco_remap_square(p));
Color = image_texture_lookup(filename,
color_space,
@ -221,7 +221,7 @@ shader node_image_texture(
interpolation,
wrap);
}
else if (projection == "Tube") {
else if (projection == "tube") {
point projected = map_to_tube(texco_remap_square(p));
Color = image_texture_lookup(filename,
color_space,

View File

@ -49,7 +49,7 @@ float safe_log(float a, float b)
}
shader node_math(
string type = "Add",
string type = "add",
int use_clamp = 0,
float Value1 = 0.0,
float Value2 = 0.0,
@ -57,43 +57,43 @@ shader node_math(
{
/* OSL asin, acos, pow check for values that could give rise to nan */
if (type == "Add")
if (type == "add")
Value = Value1 + Value2;
else if (type == "Subtract")
else if (type == "subtract")
Value = Value1 - Value2;
else if (type == "Multiply")
else if (type == "multiply")
Value = Value1 * Value2;
else if (type == "Divide")
else if (type == "divide")
Value = safe_divide(Value1, Value2);
else if (type == "Sine")
else if (type == "sine")
Value = sin(Value1);
else if (type == "Cosine")
else if (type == "cosine")
Value = cos(Value1);
else if (type == "Tangent")
else if (type == "tangent")
Value = tan(Value1);
else if (type == "Arcsine")
else if (type == "arcsine")
Value = asin(Value1);
else if (type == "Arccosine")
else if (type == "arccosine")
Value = acos(Value1);
else if (type == "Arctangent")
else if (type == "arctangent")
Value = atan(Value1);
else if (type == "Power")
else if (type == "power")
Value = pow(Value1, Value2);
else if (type == "Logarithm")
else if (type == "logarithm")
Value = safe_log(Value1, Value2);
else if (type == "Minimum")
else if (type == "minimum")
Value = min(Value1, Value2);
else if (type == "Maximum")
else if (type == "maximum")
Value = max(Value1, Value2);
else if (type == "Round")
else if (type == "round")
Value = floor(Value1 + 0.5);
else if (type == "Less Than")
else if (type == "less_than")
Value = Value1 < Value2;
else if (type == "Greater Than")
else if (type == "greater_than")
Value = Value1 > Value2;
else if (type == "Modulo")
else if (type == "modulo")
Value = safe_modulo(Value1, Value2);
else if (type == "Absolute")
else if (type == "absolute")
Value = fabs(Value1);
if (use_clamp)

View File

@ -277,7 +277,7 @@ color node_mix_clamp(color col)
}
shader node_mix(
string type = "Mix",
string type = "mix",
int use_clamp = 0,
float Fac = 0.5,
color Color1 = 0.0,
@ -286,41 +286,41 @@ shader node_mix(
{
float t = clamp(Fac, 0.0, 1.0);
if (type == "Mix")
if (type == "mix")
Color = node_mix_blend(t, Color1, Color2);
if (type == "Add")
if (type == "add")
Color = node_mix_add(t, Color1, Color2);
if (type == "Multiply")
if (type == "multiply")
Color = node_mix_mul(t, Color1, Color2);
if (type == "Screen")
if (type == "screen")
Color = node_mix_screen(t, Color1, Color2);
if (type == "Overlay")
if (type == "overlay")
Color = node_mix_overlay(t, Color1, Color2);
if (type == "Subtract")
if (type == "subtract")
Color = node_mix_sub(t, Color1, Color2);
if (type == "Divide")
if (type == "divide")
Color = node_mix_div(t, Color1, Color2);
if (type == "Difference")
if (type == "difference")
Color = node_mix_diff(t, Color1, Color2);
if (type == "Darken")
if (type == "darken")
Color = node_mix_dark(t, Color1, Color2);
if (type == "Lighten")
if (type == "lighten")
Color = node_mix_light(t, Color1, Color2);
if (type == "Dodge")
if (type == "dodge")
Color = node_mix_dodge(t, Color1, Color2);
if (type == "Burn")
if (type == "burn")
Color = node_mix_burn(t, Color1, Color2);
if (type == "Hue")
if (type == "hue")
Color = node_mix_hue(t, Color1, Color2);
if (type == "Saturation")
if (type == "saturation")
Color = node_mix_sat(t, Color1, Color2);
if (type == "Value")
if (type == "value")
Color = node_mix_val (t, Color1, Color2);
if (type == "Color")
if (type == "color")
Color = node_mix_color(t, Color1, Color2);
if (type == "Soft Light")
if (type == "soft_light")
Color = node_mix_soft(t, Color1, Color2);
if (type == "Linear Light")
if (type == "linear_light")
Color = node_mix_linear(t, Color1, Color2);
if (use_clamp)

View File

@ -210,15 +210,15 @@ shader node_musgrave_texture(
p = p * Scale;
if (type == "Multifractal")
if (type == "multifractal")
Fac = intensity * noise_musgrave_multi_fractal(p, dimension, lacunarity, octaves);
else if (type == "fBM")
Fac = intensity * noise_musgrave_fBm(p, dimension, lacunarity, octaves);
else if (type == "Hybrid Multifractal")
else if (type == "hybrid_multifractal")
Fac = intensity * noise_musgrave_hybrid_multi_fractal(p, dimension, lacunarity, octaves, Offset, Gain);
else if (type == "Ridged Multifractal")
else if (type == "ridged_multifractal")
Fac = intensity * noise_musgrave_ridged_multi_fractal(p, dimension, lacunarity, octaves, Offset, Gain);
else if (type == "Hetero Terrain")
else if (type == "hetero_terrain")
Fac = intensity * noise_musgrave_hetero_terrain(p, dimension, lacunarity, octaves, Offset);
Color = color(Fac, Fac, Fac);

View File

@ -20,14 +20,14 @@ shader node_normal_map(
normal NormalIn = N,
float Strength = 1.0,
color Color = color(0.5, 0.5, 1.0),
string space = "Tangent",
string space = "tangent",
string attr_name = "geom:tangent",
string attr_sign_name = "geom:tangent_sign",
output normal Normal = NormalIn)
{
color mcolor = 2.0 * color(Color[0] - 0.5, Color[1] - 0.5, Color[2] - 0.5);
if (space == "Tangent") {
if (space == "tangent") {
vector tangent;
vector ninterp;
float tangent_sign;
@ -53,20 +53,20 @@ shader node_normal_map(
Normal = normal(0, 0, 0);
}
}
else if (space == "Object") {
else if (space == "object") {
Normal = normalize(transform("object", "world", vector(mcolor)));
}
else if (space == "World") {
else if (space == "world") {
Normal = normalize(vector(mcolor));
}
else if (space == "Blender Object") {
else if (space == "blender_object") {
/* strange blender convention */
mcolor[1] = -mcolor[1];
mcolor[2] = -mcolor[2];
Normal = normalize(transform("object", "world", vector(mcolor)));
}
else if (space == "Blender World") {
else if (space == "blender_world") {
/* strange blender convention */
mcolor[1] = -mcolor[1];
mcolor[2] = -mcolor[2];

View File

@ -18,7 +18,7 @@
shader node_refraction_bsdf(
color Color = 0.8,
string distribution = "Sharp",
string distribution = "sharp",
float Roughness = 0.2,
float IOR = 1.45,
normal Normal = N,
@ -27,9 +27,9 @@ shader node_refraction_bsdf(
float f = max(IOR, 1e-5);
float eta = backfacing() ? 1.0 / f : f;
if (distribution == "Sharp")
if (distribution == "sharp")
BSDF = Color * refraction(Normal, eta);
else if (distribution == "Beckmann")
else if (distribution == "beckmann")
BSDF = Color * microfacet_beckmann_refraction(Normal, Roughness, eta);
else if (distribution == "GGX")
BSDF = Color * microfacet_ggx_refraction(Normal, Roughness, eta);

View File

@ -111,7 +111,7 @@ shader node_sky_texture(
int use_mapping = 0,
matrix mapping = matrix(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
vector Vector = P,
string sky_model = "Hosek / Wilkie",
string type = "hosek_wilkie",
float theta = 0.0,
float phi = 0.0,
color radiance = color(0.0, 0.0, 0.0),
@ -125,7 +125,7 @@ shader node_sky_texture(
if (use_mapping)
p = transform(mapping, p);
if (sky_model == "Hosek / Wilkie")
if (type == "hosek_wilkie")
Color = sky_radiance_new(p, phi, theta, radiance, config_x, config_y, config_z);
else
Color = sky_radiance_old(p, phi, theta, radiance, config_x, config_y, config_z);

View File

@ -22,13 +22,13 @@ shader node_subsurface_scattering(
vector Radius = vector(0.1, 0.1, 0.1),
float TextureBlur = 0.0,
float Sharpness = 0.0,
string falloff = "Cubic",
string falloff = "cubic",
normal Normal = N,
output closure color BSSRDF = 0)
{
if (falloff == "Gaussian")
if (falloff == "gaussian")
BSSRDF = Color * bssrdf_gaussian(Normal, Scale * Radius, TextureBlur);
else if (falloff == "Cubic")
else if (falloff == "cubic")
BSSRDF = Color * bssrdf_cubic(Normal, Scale * Radius, TextureBlur, Sharpness);
else
BSSRDF = Color * bssrdf_burley(Normal, Scale * Radius, TextureBlur, Color);

View File

@ -19,24 +19,24 @@
shader node_tangent(
normal NormalIn = N,
string attr_name = "geom:tangent",
string direction_type = "Radial",
string axis = "Z",
string direction_type = "radial",
string axis = "z",
output normal Tangent = normalize(dPdu))
{
vector T;
if (direction_type == "UV Map") {
if (direction_type == "uv_map") {
getattribute(attr_name, T);
}
else if (direction_type == "Radial") {
else if (direction_type == "radial") {
point generated;
if (!getattribute("geom:generated", generated))
generated = P;
if (axis == "X")
if (axis == "x")
T = vector(0.0, -(generated[2] - 0.5), (generated[1] - 0.5));
else if (axis == "Y")
else if (axis == "y")
T = vector(-(generated[2] - 0.5), 0.0, (generated[0] - 0.5));
else
T = vector(-(generated[1] - 0.5), (generated[0] - 0.5), 0.0);

View File

@ -18,15 +18,15 @@
shader node_toon_bsdf(
color Color = 0.8,
string component = "Diffuse",
string component = "diffuse",
float Size = 0.5,
float Smooth = 0.0,
normal Normal = N,
output closure color BSDF = 0)
{
if (component == "Diffuse")
if (component == "diffuse")
BSDF = Color * diffuse_toon(Normal, Size, Smooth);
else if (component == "Glossy")
else if (component == "glossy")
BSDF = Color * glossy_toon(Normal, Size, Smooth);
}

View File

@ -18,7 +18,7 @@
shader node_uv_map(
int from_dupli = 0,
string name = "",
string attribute = "",
string bump_offset = "center",
output point UV = point(0.0, 0.0, 0.0))
{
@ -26,10 +26,10 @@ shader node_uv_map(
getattribute("geom:dupli_uv", UV);
}
else {
if (name == "")
if (attribute == "")
getattribute("geom:uv", UV);
else
getattribute(name, UV);
getattribute(attribute, UV);
}
if (bump_offset == "dx") {

View File

@ -17,33 +17,33 @@
#include "stdosl.h"
shader node_vector_math(
string type = "Add",
string type = "add",
vector Vector1 = vector(0.0, 0.0, 0.0),
vector Vector2 = vector(0.0, 0.0, 0.0),
output float Value = 0.0,
output vector Vector = vector(0.0, 0.0, 0.0))
{
if (type == "Add") {
if (type == "add") {
Vector = Vector1 + Vector2;
Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2])) / 3.0;
}
else if (type == "Subtract") {
else if (type == "subtract") {
Vector = Vector1 - Vector2;
Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2])) / 3.0;
}
else if (type == "Average") {
else if (type == "average") {
Value = length(Vector1 + Vector2);
Vector = normalize(Vector1 + Vector2);
}
else if (type == "Dot Product") {
else if (type == "dot_product") {
Value = dot(Vector1, Vector2);
}
else if (type == "Cross Product") {
else if (type == "cross_product") {
vector c = cross(Vector1, Vector2);
Value = length(c);
Vector = normalize(c);
}
else if (type == "Normalize") {
else if (type == "normalize") {
Value = length(Vector1);
Vector = normalize(Vector1);
}

View File

@ -17,18 +17,18 @@
#include "stdosl.h"
shader node_vector_transform(
string type = "Vector",
string type = "vector",
string convert_from = "world",
string convert_to = "object",
vector VectorIn = vector(0.0, 0.0, 0.0),
output vector VectorOut = vector(0.0, 0.0, 0.0))
{
if (type == "Vector" || type == "Normal") {
if (type == "vector" || type == "normal") {
VectorOut = transform(convert_from, convert_to, VectorIn);
if (type == "Normal")
if (type == "normal")
VectorOut = normalize(VectorOut);
}
else if (type == "Point") {
else if (type == "point") {
point Point = (point)VectorIn;
VectorOut = transform(convert_from, convert_to, Point);
}

View File

@ -22,7 +22,7 @@
shader node_voronoi_texture(
int use_mapping = 0,
matrix mapping = matrix(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
string coloring = "Intensity",
string coloring = "intensity",
float Scale = 5.0,
point Vector = P,
output float Fac = 0.0,
@ -40,7 +40,7 @@ shader node_voronoi_texture(
voronoi(p * Scale, 1.0, da, pa);
/* Colored output */
if (coloring == "Intensity") {
if (coloring == "intensity") {
Fac = fabs(da[0]);
Color = color(Fac);
}

View File

@ -23,10 +23,10 @@ float wave(point p, string type, string profile, float detail, float distortion,
{
float n = 0.0;
if (type == "Bands") {
if (type == "bands") {
n = (p[0] + p[1] + p[2]) * 10.0;
}
else if (type == "Rings") {
else if (type == "rings") {
n = length(p) * 20.0;
}
@ -34,7 +34,7 @@ float wave(point p, string type, string profile, float detail, float distortion,
n = n + (distortion * noise_turbulence(p * dscale, detail, 0));
}
if (profile == "Sine") {
if (profile == "sine") {
return 0.5 + 0.5 * sin(n);
}
else {
@ -48,8 +48,8 @@ float wave(point p, string type, string profile, float detail, float distortion,
shader node_wave_texture(
int use_mapping = 0,
matrix mapping = matrix(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
string type = "Bands",
string profile = "Sine",
string type = "bands",
string profile = "sine",
float Scale = 5.0,
float Distortion = 0.0,
float Detail = 2.0,

View File

@ -41,12 +41,12 @@ CCL_NAMESPACE_BEGIN
\
static NodeEnum mapping_axis_enum; \
mapping_axis_enum.insert("none", TextureMapping::NONE); \
mapping_axis_enum.insert("X", TextureMapping::X); \
mapping_axis_enum.insert("Y", TextureMapping::Y); \
mapping_axis_enum.insert("Z", TextureMapping::Z); \
SOCKET_ENUM(tex_mapping.x_mapping, "X Mapping", mapping_axis_enum, TextureMapping::X); \
SOCKET_ENUM(tex_mapping.y_mapping, "Y Mapping", mapping_axis_enum, TextureMapping::Y); \
SOCKET_ENUM(tex_mapping.z_mapping, "z mapping", mapping_axis_enum, TextureMapping::Z); \
mapping_axis_enum.insert("x", TextureMapping::X); \
mapping_axis_enum.insert("y", TextureMapping::Y); \
mapping_axis_enum.insert("z", TextureMapping::Z); \
SOCKET_ENUM(tex_mapping.x_mapping, "x_mapping", mapping_axis_enum, TextureMapping::X); \
SOCKET_ENUM(tex_mapping.y_mapping, "y_mapping", mapping_axis_enum, TextureMapping::Y); \
SOCKET_ENUM(tex_mapping.z_mapping, "z_mapping", mapping_axis_enum, TextureMapping::Z); \
\
static NodeEnum mapping_type_enum; \
mapping_type_enum.insert("point", TextureMapping::POINT); \
@ -207,8 +207,8 @@ NODE_DEFINE(ImageTextureNode)
SOCKET_STRING(filename, "Filename", ustring(""));
static NodeEnum color_space_enum;
color_space_enum.insert("None", NODE_COLOR_SPACE_NONE);
color_space_enum.insert("Color", NODE_COLOR_SPACE_COLOR);
color_space_enum.insert("none", NODE_COLOR_SPACE_NONE);
color_space_enum.insert("color", NODE_COLOR_SPACE_COLOR);
SOCKET_ENUM(color_space, "Color Space", color_space_enum, NODE_COLOR_SPACE_COLOR);
SOCKET_BOOLEAN(use_alpha, "Use Alpha", true);
@ -227,10 +227,10 @@ NODE_DEFINE(ImageTextureNode)
SOCKET_ENUM(extension, "Extension", extension_enum, EXTENSION_REPEAT);
static NodeEnum projection_enum;
projection_enum.insert("Flat", NODE_IMAGE_PROJ_FLAT);
projection_enum.insert("Box", NODE_IMAGE_PROJ_BOX);
projection_enum.insert("Sphere", NODE_IMAGE_PROJ_SPHERE);
projection_enum.insert("Tube", NODE_IMAGE_PROJ_TUBE);
projection_enum.insert("flat", NODE_IMAGE_PROJ_FLAT);
projection_enum.insert("box", NODE_IMAGE_PROJ_BOX);
projection_enum.insert("sphere", NODE_IMAGE_PROJ_SPHERE);
projection_enum.insert("tube", NODE_IMAGE_PROJ_TUBE);
SOCKET_ENUM(projection, "Projection", projection_enum, NODE_IMAGE_PROJ_FLAT);
SOCKET_FLOAT(projection_blend, "Projection Blend", 0.0f);
@ -392,7 +392,7 @@ void ImageTextureNode::compile(OSLCompiler& compiler)
compiler.parameter("filename", string_printf("@%d", slot).c_str());
}
if(is_linear || color_space != NODE_COLOR_SPACE_COLOR)
compiler.parameter("color_space", "Linear");
compiler.parameter("color_space", "linear");
else
compiler.parameter("color_space", "sRGB");
compiler.parameter(this, "projection");
@ -416,8 +416,8 @@ NODE_DEFINE(EnvironmentTextureNode)
SOCKET_STRING(filename, "Filename", ustring(""));
static NodeEnum color_space_enum;
color_space_enum.insert("None", NODE_COLOR_SPACE_NONE);
color_space_enum.insert("Color", NODE_COLOR_SPACE_COLOR);
color_space_enum.insert("none", NODE_COLOR_SPACE_NONE);
color_space_enum.insert("color", NODE_COLOR_SPACE_COLOR);
SOCKET_ENUM(color_space, "Color Space", color_space_enum, NODE_COLOR_SPACE_COLOR);
SOCKET_BOOLEAN(use_alpha, "Use Alpha", true);
@ -430,8 +430,8 @@ NODE_DEFINE(EnvironmentTextureNode)
SOCKET_ENUM(interpolation, "Interpolation", interpolation_enum, INTERPOLATION_LINEAR);
static NodeEnum projection_enum;
projection_enum.insert("Equirectangular", NODE_ENVIRONMENT_EQUIRECTANGULAR);
projection_enum.insert("Mirror Ball", NODE_ENVIRONMENT_MIRROR_BALL);
projection_enum.insert("equirectangular", NODE_ENVIRONMENT_EQUIRECTANGULAR);
projection_enum.insert("mirror_ball", NODE_ENVIRONMENT_MIRROR_BALL);
SOCKET_ENUM(projection, "Projection", projection_enum, NODE_ENVIRONMENT_EQUIRECTANGULAR);
SOCKET_IN_POINT(vector, "Vector", make_float3(0.0f, 0.0f, 0.0f), SocketType::LINK_POSITION);
@ -575,7 +575,7 @@ void EnvironmentTextureNode::compile(OSLCompiler& compiler)
}
compiler.parameter(this, "projection");
if(is_linear || color_space != NODE_COLOR_SPACE_COLOR)
compiler.parameter("color_space", "Linear");
compiler.parameter("color_space", "linear");
else
compiler.parameter("color_space", "sRGB");
@ -715,8 +715,8 @@ NODE_DEFINE(SkyTextureNode)
TEXTURE_MAPPING_DEFINE(SkyTextureNode);
static NodeEnum type_enum;
type_enum.insert("Preetham", NODE_SKY_OLD);
type_enum.insert("Hosek / Wilkie", NODE_SKY_NEW);
type_enum.insert("preetham", NODE_SKY_OLD);
type_enum.insert("hosek_wilkie", NODE_SKY_NEW);
SOCKET_ENUM(type, "Type", type_enum, NODE_SKY_NEW);
SOCKET_VECTOR(sun_direction, "Sun Direction", make_float3(0.0f, 0.0f, 1.0f));
@ -778,7 +778,7 @@ void SkyTextureNode::compile(OSLCompiler& compiler)
else
assert(false);
compiler.parameter("sky_model", type);
compiler.parameter(this, "type");
compiler.parameter("theta", sunsky.theta);
compiler.parameter("phi", sunsky.phi);
compiler.parameter_color("radiance", make_float3(sunsky.radiance_x, sunsky.radiance_y, sunsky.radiance_z));
@ -797,13 +797,13 @@ NODE_DEFINE(GradientTextureNode)
TEXTURE_MAPPING_DEFINE(GradientTextureNode);
static NodeEnum type_enum;
type_enum.insert("Linear", NODE_BLEND_LINEAR);
type_enum.insert("Quadratic", NODE_BLEND_QUADRATIC);
type_enum.insert("Easing", NODE_BLEND_EASING);
type_enum.insert("Diagonal", NODE_BLEND_DIAGONAL);
type_enum.insert("Radial", NODE_BLEND_RADIAL);
type_enum.insert("Quadratic Sphere", NODE_BLEND_QUADRATIC_SPHERE);
type_enum.insert("Spherical", NODE_BLEND_SPHERICAL);
type_enum.insert("linear", NODE_BLEND_LINEAR);
type_enum.insert("quadratic", NODE_BLEND_QUADRATIC);
type_enum.insert("easing", NODE_BLEND_EASING);
type_enum.insert("diagonal", NODE_BLEND_DIAGONAL);
type_enum.insert("radial", NODE_BLEND_RADIAL);
type_enum.insert("quadratic_sphere", NODE_BLEND_QUADRATIC_SPHERE);
type_enum.insert("spherical", NODE_BLEND_SPHERICAL);
SOCKET_ENUM(type, "Type", type_enum, NODE_BLEND_LINEAR);
SOCKET_IN_POINT(vector, "Vector", make_float3(0.0f, 0.0f, 0.0f), SocketType::LINK_TEXTURE_GENERATED);
@ -913,8 +913,8 @@ NODE_DEFINE(VoronoiTextureNode)
TEXTURE_MAPPING_DEFINE(VoronoiTextureNode);
static NodeEnum coloring_enum;
coloring_enum.insert("Intensity", NODE_VORONOI_INTENSITY);
coloring_enum.insert("Cells", NODE_VORONOI_CELLS);
coloring_enum.insert("intensity", NODE_VORONOI_INTENSITY);
coloring_enum.insert("cells", NODE_VORONOI_CELLS);
SOCKET_ENUM(coloring, "Coloring", coloring_enum, NODE_VORONOI_INTENSITY);
SOCKET_IN_FLOAT(scale, "Scale", 1.0f);
@ -969,11 +969,11 @@ NODE_DEFINE(MusgraveTextureNode)
TEXTURE_MAPPING_DEFINE(MusgraveTextureNode);
static NodeEnum type_enum;
type_enum.insert("Multifractal", NODE_MUSGRAVE_MULTIFRACTAL);
type_enum.insert("multifractal", NODE_MUSGRAVE_MULTIFRACTAL);
type_enum.insert("fBM", NODE_MUSGRAVE_FBM);
type_enum.insert("Hybrid Multifractal", NODE_MUSGRAVE_HYBRID_MULTIFRACTAL);
type_enum.insert("Ridged Multifractal", NODE_MUSGRAVE_RIDGED_MULTIFRACTAL);
type_enum.insert("Hetero Terrain", NODE_MUSGRAVE_HETERO_TERRAIN);
type_enum.insert("hybrid_multifractal", NODE_MUSGRAVE_HYBRID_MULTIFRACTAL);
type_enum.insert("ridged_multifractal", NODE_MUSGRAVE_RIDGED_MULTIFRACTAL);
type_enum.insert("hetero_terrain", NODE_MUSGRAVE_HETERO_TERRAIN);
SOCKET_ENUM(type, "Type", type_enum, NODE_MUSGRAVE_FBM);
SOCKET_IN_FLOAT(scale, "Scale", 1.0f);
@ -1050,13 +1050,13 @@ NODE_DEFINE(WaveTextureNode)
TEXTURE_MAPPING_DEFINE(WaveTextureNode);
static NodeEnum type_enum;
type_enum.insert("Bands", NODE_WAVE_BANDS);
type_enum.insert("Rings", NODE_WAVE_RINGS);
type_enum.insert("bands", NODE_WAVE_BANDS);
type_enum.insert("rings", NODE_WAVE_RINGS);
SOCKET_ENUM(type, "Type", type_enum, NODE_WAVE_BANDS);
static NodeEnum profile_enum;
profile_enum.insert("Sine", NODE_WAVE_PROFILE_SIN);
profile_enum.insert("Saw", NODE_WAVE_PROFILE_SAW);
profile_enum.insert("sine", NODE_WAVE_PROFILE_SIN);
profile_enum.insert("saw", NODE_WAVE_PROFILE_SAW);
SOCKET_ENUM(profile, "Profile", profile_enum, NODE_WAVE_PROFILE_SIN);
SOCKET_IN_FLOAT(scale, "Scale", 1.0f);
@ -1337,8 +1337,8 @@ NODE_DEFINE(PointDensityTextureNode)
SOCKET_STRING(filename, "Filename", ustring(""));
static NodeEnum space_enum;
space_enum.insert("Object", NODE_TEX_VOXEL_SPACE_OBJECT);
space_enum.insert("World", NODE_TEX_VOXEL_SPACE_WORLD);
space_enum.insert("object", NODE_TEX_VOXEL_SPACE_OBJECT);
space_enum.insert("world", NODE_TEX_VOXEL_SPACE_WORLD);
SOCKET_ENUM(space, "Space", space_enum, NODE_TEX_VOXEL_SPACE_OBJECT);
static NodeEnum interpolation_enum;
@ -1829,9 +1829,9 @@ NODE_DEFINE(AnisotropicBsdfNode)
SOCKET_IN_FLOAT(surface_mix_weight, "SurfaceMixWeight", 0.0f, SocketType::SVM_INTERNAL);
static NodeEnum distribution_enum;
distribution_enum.insert("Beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID);
distribution_enum.insert("beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID);
distribution_enum.insert("GGX", CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID);
distribution_enum.insert("Ashikhmin-Shirley", CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID);
distribution_enum.insert("ashikhmin_shirley", CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID);
SOCKET_ENUM(distribution, "Distribution", distribution_enum, CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID);
SOCKET_IN_VECTOR(tangent, "Tangent", make_float3(0.0f, 0.0f, 0.0f), SocketType::LINK_TANGENT);
@ -1887,10 +1887,10 @@ NODE_DEFINE(GlossyBsdfNode)
SOCKET_IN_FLOAT(surface_mix_weight, "SurfaceMixWeight", 0.0f, SocketType::SVM_INTERNAL);
static NodeEnum distribution_enum;
distribution_enum.insert("Sharp", CLOSURE_BSDF_REFLECTION_ID);
distribution_enum.insert("Beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_ID);
distribution_enum.insert("sharp", CLOSURE_BSDF_REFLECTION_ID);
distribution_enum.insert("beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_ID);
distribution_enum.insert("GGX", CLOSURE_BSDF_MICROFACET_GGX_ID);
distribution_enum.insert("Ashikhmin-Shirley", CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID);
distribution_enum.insert("ashikhmin_shirley", CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID);
SOCKET_ENUM(distribution, "Distribution", distribution_enum, CLOSURE_BSDF_MICROFACET_GGX_ID);
SOCKET_IN_FLOAT(roughness, "Roughness", 0.2f);
@ -1961,8 +1961,8 @@ NODE_DEFINE(GlassBsdfNode)
SOCKET_IN_FLOAT(surface_mix_weight, "SurfaceMixWeight", 0.0f, SocketType::SVM_INTERNAL);
static NodeEnum distribution_enum;
distribution_enum.insert("Sharp", CLOSURE_BSDF_SHARP_GLASS_ID);
distribution_enum.insert("Beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_GLASS_ID);
distribution_enum.insert("sharp", CLOSURE_BSDF_SHARP_GLASS_ID);
distribution_enum.insert("beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_GLASS_ID);
distribution_enum.insert("GGX", CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID);
SOCKET_ENUM(distribution, "Distribution", distribution_enum, CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID);
SOCKET_IN_FLOAT(roughness, "Roughness", 0.0f);
@ -2035,8 +2035,8 @@ NODE_DEFINE(RefractionBsdfNode)
SOCKET_IN_FLOAT(surface_mix_weight, "SurfaceMixWeight", 0.0f, SocketType::SVM_INTERNAL);
static NodeEnum distribution_enum;
distribution_enum.insert("Sharp", CLOSURE_BSDF_REFRACTION_ID);
distribution_enum.insert("Beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID);
distribution_enum.insert("sharp", CLOSURE_BSDF_REFRACTION_ID);
distribution_enum.insert("beckmann", CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID);
distribution_enum.insert("GGX", CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID);
SOCKET_ENUM(distribution, "Distribution", distribution_enum, CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID);
@ -2110,8 +2110,8 @@ NODE_DEFINE(ToonBsdfNode)
SOCKET_IN_FLOAT(surface_mix_weight, "SurfaceMixWeight", 0.0f, SocketType::SVM_INTERNAL);
static NodeEnum component_enum;
component_enum.insert("Diffuse", CLOSURE_BSDF_DIFFUSE_TOON_ID);
component_enum.insert("Glossy", CLOSURE_BSDF_GLOSSY_TOON_ID);
component_enum.insert("diffuse", CLOSURE_BSDF_DIFFUSE_TOON_ID);
component_enum.insert("glossy", CLOSURE_BSDF_GLOSSY_TOON_ID);
SOCKET_ENUM(component, "Component", component_enum, CLOSURE_BSDF_DIFFUSE_TOON_ID);
SOCKET_IN_FLOAT(size, "Size", 0.5f);
SOCKET_IN_FLOAT(smooth, "Smooth", 0.0f);
@ -2276,9 +2276,9 @@ NODE_DEFINE(SubsurfaceScatteringNode)
SOCKET_IN_FLOAT(surface_mix_weight, "SurfaceMixWeight", 0.0f, SocketType::SVM_INTERNAL);
static NodeEnum falloff_enum;
falloff_enum.insert("Cubic", CLOSURE_BSSRDF_CUBIC_ID);
falloff_enum.insert("Gaussian", CLOSURE_BSSRDF_GAUSSIAN_ID);
falloff_enum.insert("Burley", CLOSURE_BSSRDF_BURLEY_ID);
falloff_enum.insert("cubic", CLOSURE_BSSRDF_CUBIC_ID);
falloff_enum.insert("gaussian", CLOSURE_BSSRDF_GAUSSIAN_ID);
falloff_enum.insert("burley", CLOSURE_BSSRDF_BURLEY_ID);
SOCKET_ENUM(falloff, "Falloff", falloff_enum, CLOSURE_BSSRDF_BURLEY_ID);
SOCKET_IN_FLOAT(scale, "Scale", 0.01f);
SOCKET_IN_VECTOR(radius, "Radius", make_float3(0.1f, 0.1f, 0.1f));
@ -2593,8 +2593,8 @@ NODE_DEFINE(HairBsdfNode)
SOCKET_IN_FLOAT(surface_mix_weight, "SurfaceMixWeight", 0.0f, SocketType::SVM_INTERNAL);
static NodeEnum component_enum;
component_enum.insert("Reflection", CLOSURE_BSDF_HAIR_REFLECTION_ID);
component_enum.insert("Transmission", CLOSURE_BSDF_HAIR_TRANSMISSION_ID);
component_enum.insert("reflection", CLOSURE_BSDF_HAIR_REFLECTION_ID);
component_enum.insert("transmission", CLOSURE_BSDF_HAIR_TRANSMISSION_ID);
SOCKET_ENUM(component, "Component", component_enum, CLOSURE_BSDF_HAIR_REFLECTION_ID);
SOCKET_IN_FLOAT(offset, "Offset", 0.0f);
SOCKET_IN_FLOAT(roughness_u, "RoughnessU", 0.2f);
@ -2975,7 +2975,7 @@ void UVMapNode::compile(OSLCompiler& compiler)
compiler.parameter("bump_offset", "center");
compiler.parameter(this, "from_dupli");
compiler.parameter("name", attribute.c_str());
compiler.parameter(this, "attribute");
compiler.add(this, "node_uv_map");
}
@ -3606,24 +3606,24 @@ NODE_DEFINE(MixNode)
NodeType* type = NodeType::add("mix", create, NodeType::SHADER);
static NodeEnum type_enum;
type_enum.insert("Mix", NODE_MIX_BLEND);
type_enum.insert("Add", NODE_MIX_ADD);
type_enum.insert("Multiply", NODE_MIX_MUL);
type_enum.insert("Screen", NODE_MIX_SCREEN);
type_enum.insert("Overlay", NODE_MIX_OVERLAY);
type_enum.insert("Subtract", NODE_MIX_SUB);
type_enum.insert("Divide", NODE_MIX_DIV);
type_enum.insert("Difference", NODE_MIX_DIFF);
type_enum.insert("Darken", NODE_MIX_DARK);
type_enum.insert("Lighten", NODE_MIX_LIGHT);
type_enum.insert("Dodge", NODE_MIX_DODGE);
type_enum.insert("Burn", NODE_MIX_BURN);
type_enum.insert("Hue", NODE_MIX_HUE);
type_enum.insert("Saturation", NODE_MIX_SAT);
type_enum.insert("Value", NODE_MIX_VAL);
type_enum.insert("Color", NODE_MIX_COLOR);
type_enum.insert("Soft Light", NODE_MIX_SOFT);
type_enum.insert("Linear Light", NODE_MIX_LINEAR);
type_enum.insert("mix", NODE_MIX_BLEND);
type_enum.insert("add", NODE_MIX_ADD);
type_enum.insert("multiply", NODE_MIX_MUL);
type_enum.insert("screen", NODE_MIX_SCREEN);
type_enum.insert("overlay", NODE_MIX_OVERLAY);
type_enum.insert("subtract", NODE_MIX_SUB);
type_enum.insert("divide", NODE_MIX_DIV);
type_enum.insert("difference", NODE_MIX_DIFF);
type_enum.insert("darken", NODE_MIX_DARK);
type_enum.insert("lighten", NODE_MIX_LIGHT);
type_enum.insert("dodge", NODE_MIX_DODGE);
type_enum.insert("burn", NODE_MIX_BURN);
type_enum.insert("hue", NODE_MIX_HUE);
type_enum.insert("saturation", NODE_MIX_SAT);
type_enum.insert("value", NODE_MIX_VAL);
type_enum.insert("color", NODE_MIX_COLOR);
type_enum.insert("soft_light", NODE_MIX_SOFT);
type_enum.insert("linear_light", NODE_MIX_LINEAR);
SOCKET_ENUM(type, "Type", type_enum, NODE_MIX_BLEND);
SOCKET_BOOLEAN(use_clamp, "Use Clamp", false);
@ -4494,25 +4494,25 @@ NODE_DEFINE(MathNode)
NodeType* type = NodeType::add("math", create, NodeType::SHADER);
static NodeEnum type_enum;
type_enum.insert("Add", NODE_MATH_ADD);
type_enum.insert("Subtract", NODE_MATH_SUBTRACT);
type_enum.insert("Multiply", NODE_MATH_MULTIPLY);
type_enum.insert("Divide", NODE_MATH_DIVIDE);
type_enum.insert("Sine", NODE_MATH_SINE);
type_enum.insert("Cosine", NODE_MATH_COSINE);
type_enum.insert("Tangent", NODE_MATH_TANGENT);
type_enum.insert("Arcsine", NODE_MATH_ARCSINE);
type_enum.insert("Arccosine", NODE_MATH_ARCCOSINE);
type_enum.insert("Arctangent", NODE_MATH_ARCTANGENT);
type_enum.insert("Power", NODE_MATH_POWER);
type_enum.insert("Logarithm", NODE_MATH_LOGARITHM);
type_enum.insert("Minimum", NODE_MATH_MINIMUM);
type_enum.insert("Maximum", NODE_MATH_MAXIMUM);
type_enum.insert("Round", NODE_MATH_ROUND);
type_enum.insert("Less Than", NODE_MATH_LESS_THAN);
type_enum.insert("Greater Than", NODE_MATH_GREATER_THAN);
type_enum.insert("Modulo", NODE_MATH_MODULO);
type_enum.insert("Absolute", NODE_MATH_ABSOLUTE);
type_enum.insert("add", NODE_MATH_ADD);
type_enum.insert("subtract", NODE_MATH_SUBTRACT);
type_enum.insert("multiply", NODE_MATH_MULTIPLY);
type_enum.insert("divide", NODE_MATH_DIVIDE);
type_enum.insert("sine", NODE_MATH_SINE);
type_enum.insert("cosine", NODE_MATH_COSINE);
type_enum.insert("tangent", NODE_MATH_TANGENT);
type_enum.insert("arcsine", NODE_MATH_ARCSINE);
type_enum.insert("arccosine", NODE_MATH_ARCCOSINE);
type_enum.insert("arctangent", NODE_MATH_ARCTANGENT);
type_enum.insert("power", NODE_MATH_POWER);
type_enum.insert("logarithm", NODE_MATH_LOGARITHM);
type_enum.insert("minimum", NODE_MATH_MINIMUM);
type_enum.insert("maximum", NODE_MATH_MAXIMUM);
type_enum.insert("round", NODE_MATH_ROUND);
type_enum.insert("less_than", NODE_MATH_LESS_THAN);
type_enum.insert("greater_than", NODE_MATH_GREATER_THAN);
type_enum.insert("modulo", NODE_MATH_MODULO);
type_enum.insert("absolute", NODE_MATH_ABSOLUTE);
SOCKET_ENUM(type, "Type", type_enum, NODE_MATH_ADD);
SOCKET_BOOLEAN(use_clamp, "Use Clamp", false);
@ -4579,12 +4579,12 @@ NODE_DEFINE(VectorMathNode)
NodeType* type = NodeType::add("vector_math", create, NodeType::SHADER);
static NodeEnum type_enum;
type_enum.insert("Add", NODE_VECTOR_MATH_ADD);
type_enum.insert("Subtract", NODE_VECTOR_MATH_SUBTRACT);
type_enum.insert("Average", NODE_VECTOR_MATH_AVERAGE);
type_enum.insert("Dot Product", NODE_VECTOR_MATH_DOT_PRODUCT);
type_enum.insert("Cross Product", NODE_VECTOR_MATH_CROSS_PRODUCT);
type_enum.insert("Normalize", NODE_VECTOR_MATH_NORMALIZE);
type_enum.insert("add", NODE_VECTOR_MATH_ADD);
type_enum.insert("subtract", NODE_VECTOR_MATH_SUBTRACT);
type_enum.insert("average", NODE_VECTOR_MATH_AVERAGE);
type_enum.insert("dot_product", NODE_VECTOR_MATH_DOT_PRODUCT);
type_enum.insert("cross_product", NODE_VECTOR_MATH_CROSS_PRODUCT);
type_enum.insert("normalize", NODE_VECTOR_MATH_NORMALIZE);
SOCKET_ENUM(type, "Type", type_enum, NODE_VECTOR_MATH_ADD);
SOCKET_IN_VECTOR(vector1, "Vector1", make_float3(0.0f, 0.0f, 0.0f));
@ -4658,9 +4658,9 @@ NODE_DEFINE(VectorTransformNode)
NodeType* type = NodeType::add("vector_transform", create, NodeType::SHADER);
static NodeEnum type_enum;
type_enum.insert("Vector", NODE_VECTOR_TRANSFORM_TYPE_VECTOR);
type_enum.insert("Point", NODE_VECTOR_TRANSFORM_TYPE_POINT);
type_enum.insert("Normal", NODE_VECTOR_TRANSFORM_TYPE_NORMAL);
type_enum.insert("vector", NODE_VECTOR_TRANSFORM_TYPE_VECTOR);
type_enum.insert("point", NODE_VECTOR_TRANSFORM_TYPE_POINT);
type_enum.insert("normal", NODE_VECTOR_TRANSFORM_TYPE_NORMAL);
SOCKET_ENUM(type, "Type", type_enum, NODE_VECTOR_TRANSFORM_TYPE_VECTOR);
static NodeEnum space_enum;
@ -5046,11 +5046,11 @@ NODE_DEFINE(NormalMapNode)
NodeType* type = NodeType::add("normal_map", create, NodeType::SHADER);
static NodeEnum space_enum;
space_enum.insert("Tangent", NODE_NORMAL_MAP_TANGENT);
space_enum.insert("Object", NODE_NORMAL_MAP_OBJECT);
space_enum.insert("World", NODE_NORMAL_MAP_WORLD);
space_enum.insert("Blender Object", NODE_NORMAL_MAP_BLENDER_OBJECT);
space_enum.insert("Blender World", NODE_NORMAL_MAP_BLENDER_WORLD);
space_enum.insert("tangent", NODE_NORMAL_MAP_TANGENT);
space_enum.insert("object", NODE_NORMAL_MAP_OBJECT);
space_enum.insert("world", NODE_NORMAL_MAP_WORLD);
space_enum.insert("blender_object", NODE_NORMAL_MAP_BLENDER_OBJECT);
space_enum.insert("blender_world", NODE_NORMAL_MAP_BLENDER_WORLD);
SOCKET_ENUM(space, "Space", space_enum, NODE_TANGENT_RADIAL);
SOCKET_STRING(attribute, "Attribute", ustring(""));
@ -5138,14 +5138,14 @@ NODE_DEFINE(TangentNode)
NodeType* type = NodeType::add("tangent", create, NodeType::SHADER);
static NodeEnum direction_type_enum;
direction_type_enum.insert("Radial", NODE_TANGENT_RADIAL);
direction_type_enum.insert("UV Map", NODE_TANGENT_UVMAP);
direction_type_enum.insert("radial", NODE_TANGENT_RADIAL);
direction_type_enum.insert("uv_map", NODE_TANGENT_UVMAP);
SOCKET_ENUM(direction_type, "Direction Type", direction_type_enum, NODE_TANGENT_RADIAL);
static NodeEnum axis_enum;
axis_enum.insert("X", NODE_TANGENT_AXIS_X);
axis_enum.insert("Y", NODE_TANGENT_AXIS_Y);
axis_enum.insert("Z", NODE_TANGENT_AXIS_Z);
axis_enum.insert("x", NODE_TANGENT_AXIS_X);
axis_enum.insert("y", NODE_TANGENT_AXIS_Y);
axis_enum.insert("z", NODE_TANGENT_AXIS_Z);
SOCKET_ENUM(axis, "Axis", axis_enum, NODE_TANGENT_AXIS_X);
SOCKET_STRING(attribute, "Attribute", ustring(""));