Shading: Refactor Math node and use dynamic inputs.
- Implement dynamic inputs. The second input is now unavailable in single operand math operators. - Reimplemenet the clamp option using graph expansion for Cycles. - Clean up code and unify naming between Blender and Cycles. - Remove unused code. Reviewers: brecht Differential Revision: https://developer.blender.org/D5481
This commit is contained in:
@@ -46,10 +46,10 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
case NODE_MATH_ADD:
|
||||
*out = in0 + in1;
|
||||
break;
|
||||
case NODE_MATH_SUB:
|
||||
case NODE_MATH_SUBTRACT:
|
||||
*out = in0 - in1;
|
||||
break;
|
||||
case NODE_MATH_MUL:
|
||||
case NODE_MATH_MULTIPLY:
|
||||
*out = in0 * in1;
|
||||
break;
|
||||
case NODE_MATH_DIVIDE: {
|
||||
@@ -62,19 +62,19 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_SIN: {
|
||||
case NODE_MATH_SINE: {
|
||||
*out = sinf(in0);
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_COS: {
|
||||
case NODE_MATH_COSINE: {
|
||||
*out = cosf(in0);
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_TAN: {
|
||||
case NODE_MATH_TANGENT: {
|
||||
*out = tanf(in0);
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_ASIN: {
|
||||
case NODE_MATH_ARCSINE: {
|
||||
/* Can't do the impossible... */
|
||||
if (in0 <= 1 && in0 >= -1) {
|
||||
*out = asinf(in0);
|
||||
@@ -84,7 +84,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_ACOS: {
|
||||
case NODE_MATH_ARCCOSINE: {
|
||||
/* Can't do the impossible... */
|
||||
if (in0 <= 1 && in0 >= -1) {
|
||||
*out = acosf(in0);
|
||||
@@ -94,11 +94,11 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_ATAN: {
|
||||
case NODE_MATH_ARCTANGENT: {
|
||||
*out = atan(in0);
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_POW: {
|
||||
case NODE_MATH_POWER: {
|
||||
/* Only raise negative numbers by full integers */
|
||||
if (in0 >= 0) {
|
||||
out[0] = pow(in0, in1);
|
||||
@@ -114,7 +114,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_LOG: {
|
||||
case NODE_MATH_LOGARITHM: {
|
||||
/* Don't want any imaginary numbers... */
|
||||
if (in0 > 0 && in1 > 0) {
|
||||
*out = log(in0) / log(in1);
|
||||
@@ -124,7 +124,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_MIN: {
|
||||
case NODE_MATH_MINIMUM: {
|
||||
if (in0 < in1) {
|
||||
*out = in0;
|
||||
}
|
||||
@@ -133,7 +133,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NODE_MATH_MAX: {
|
||||
case NODE_MATH_MAXIMUM: {
|
||||
if (in0 > in1) {
|
||||
*out = in0;
|
||||
}
|
||||
@@ -147,7 +147,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
break;
|
||||
}
|
||||
|
||||
case NODE_MATH_LESS: {
|
||||
case NODE_MATH_LESS_THAN: {
|
||||
if (in0 < in1) {
|
||||
*out = 1.0f;
|
||||
}
|
||||
@@ -157,7 +157,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
break;
|
||||
}
|
||||
|
||||
case NODE_MATH_GREATER: {
|
||||
case NODE_MATH_GREATER_THAN: {
|
||||
if (in0 > in1) {
|
||||
*out = 1.0f;
|
||||
}
|
||||
@@ -167,7 +167,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
break;
|
||||
}
|
||||
|
||||
case NODE_MATH_MOD: {
|
||||
case NODE_MATH_MODULO: {
|
||||
if (in1 == 0.0f) {
|
||||
*out = 0.0f;
|
||||
}
|
||||
@@ -177,12 +177,12 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
break;
|
||||
}
|
||||
|
||||
case NODE_MATH_ABS: {
|
||||
case NODE_MATH_ABSOLUTE: {
|
||||
*out = fabsf(in0);
|
||||
break;
|
||||
}
|
||||
|
||||
case NODE_MATH_ATAN2: {
|
||||
case NODE_MATH_ARCTAN2: {
|
||||
*out = atan2(in0, in1);
|
||||
break;
|
||||
}
|
||||
@@ -197,7 +197,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
||||
break;
|
||||
}
|
||||
|
||||
case NODE_MATH_FRACT: {
|
||||
case NODE_MATH_FRACTION: {
|
||||
*out = in0 - floorf(in0);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user