Skip to content

Commit

Permalink
Add sign() and log() to vector struct types. (#904)
Browse files Browse the repository at this point in the history
Ass missing `sign` node to MaterialX.
Change MaterialX `ln` implementation from log2 to correct log.
  • Loading branch information
lgritz committed Jul 26, 2018
1 parent 4d3d0c4 commit 3c8f214
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/shaders/MaterialX/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,8 @@ make_mx_flavors (
mx_image.mx mx_invert.mx mx_ln.mx mx_max.mx mx_min.mx mx_mix.mx
mx_modulo.mx mx_noise2d.mx mx_noise3d.mx
mx_ramp4.mx mx_ramplr.mx mx_ramptb.mx mx_remap.mx
mx_sin.mx mx_smoothstep.mx mx_splitlr.mx mx_splittb.mx mx_sqrt.mx mx_subtract.mx
mx_sign.mx mx_sin.mx mx_smoothstep.mx mx_splitlr.mx
mx_splittb.mx mx_sqrt.mx mx_subtract.mx
mx_switch.mx mx_swizzle_color.mx mx_swizzle_color2.mx
mx_swizzle_color4.mx mx_swizzle_vector.mx mx_swizzle_vector2.mx
mx_swizzle_vector4.mx mx_tan.mx mx_triplanarprojection.mx
Expand Down
3 changes: 2 additions & 1 deletion src/shaders/MaterialX/build_materialX_osl.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,8 @@
'mx_rotate2d': ['vector2'],
'mx_saturate': ['color', 'color4'],
'mx_scale': ['vector', 'vector2'],
'mx_sin': ALL_TYPES,
'mx_sign': ALL_TYPES,
'mx_sin': ALL_TYPES,
'mx_splitlr': ALL_TYPES,
'mx_splittb': ALL_TYPES,
'mx_sqrt' : ALL_TYPES,
Expand Down
6 changes: 3 additions & 3 deletions src/shaders/MaterialX/mx_ln.mx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Open Shading Language : Copyright (c) 2009-2017 Sony Pictures Imageworks Inc., et al.
// https://github.com/imageworks/OpenShadingLanguage/blob/master/LICENSE
//
// MaterialX specification (c) 2017 Lucasfilm Ltd.
//
// MaterialX specification (c) 2017 Lucasfilm Ltd.
// http://www.materialx.org/

#include "mx_funcs.h"
Expand All @@ -13,5 +13,5 @@ shader mx_ln_TYPE_SUFFIX
output TYPE out = TYPE_DEFAULT_OUT
)
{
out = log2(in);
out = log(in);
}
17 changes: 17 additions & 0 deletions src/shaders/MaterialX/mx_sign.mx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Open Shading Language : Copyright (c) 2009-2017 Sony Pictures Imageworks Inc., et al.
// https://github.com/imageworks/OpenShadingLanguage/blob/master/LICENSE
//
// MaterialX specification (c) 2017 Lucasfilm Ltd.
// http://www.materialx.org/

#include "mx_funcs.h"

shader mx_sign_TYPE_SUFFIX
[[ string help = TYPE_STR" sign(in)" ]]
(
TYPE in = TYPE_DEFAULT_IN,
output TYPE out = TYPE_DEFAULT_OUT
)
{
out = sign(in);
}
11 changes: 11 additions & 0 deletions src/shaders/color2.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,11 @@ color2 exp(color2 a)
return color2(exp(a.r), exp(a.a));
}

color2 log(color2 a)
{
return color2(log(a.r), log(a.a));
}

color2 log2(color2 a)
{
return color2(log2(a.r), log2(a.a));
Expand Down Expand Up @@ -251,6 +256,12 @@ color2 pow(color2 base, float power)
return pow(base, color2(power, power));
}

color2 sign(color2 a)
{
return color2(sign(a.r),
sign(a.a));
}

color2 sin(color2 a)
{
return color2(sin(a.r),
Expand Down
11 changes: 11 additions & 0 deletions src/shaders/color4.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,11 @@ color4 exp(color4 a)
return color4(exp(a.rgb), exp(a.a));
}

color4 log(color4 a)
{
return color4(log(a.rgb), log(a.a));
}

color4 log2(color4 a)
{
return color4(log2(a.rgb), log2(a.a));
Expand Down Expand Up @@ -254,6 +259,12 @@ color4 pow(color4 base, float power)
return pow(base, color4(color(power), power));
}

color4 sign(color4 a)
{
return color4(sign(a.rgb),
sign(a.a));
}

color4 sin(color4 a)
{
return color4(sin(a.rgb),
Expand Down
11 changes: 11 additions & 0 deletions src/shaders/vector2.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,11 @@ vector2 exp(vector2 a)
return vector2 (exp(a.x), exp(a.y));
}

vector2 log(vector2 a)
{
return vector2 (log(a.x), log(a.y));
}

vector2 log2(vector2 a)
{
return vector2 (log2(a.x), log2(a.y));
Expand Down Expand Up @@ -268,6 +273,12 @@ vector2 pow (vector2 in, float amount)
return pow(in, vector2(amount, amount));
}

vector2 sign(vector2 a)
{
return vector2(sign(a.x),
sign(a.y));
}

vector2 sin(vector2 a)
{
return vector2(sin(a.x),
Expand Down
16 changes: 16 additions & 0 deletions src/shaders/vector4.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,14 @@ vector4 exp(vector4 in)
exp(in.w));
}

vector4 log(vector4 in)
{
return vector4 (log(in.x),
log(in.y),
log(in.z),
log(in.w));
}

vector4 log2(vector4 in)
{
return vector4 (log2(in.x),
Expand Down Expand Up @@ -307,6 +315,14 @@ vector4 pow(vector4 in, float amount)
pow(in.w, amount));
}

vector4 sign(vector4 a)
{
return vector4(sign(a.x),
sign(a.y),
sign(a.z),
sign(a.w));
}

vector4 sin(vector4 a)
{
return vector4(sin(a.x),
Expand Down

0 comments on commit 3c8f214

Please sign in to comment.