Table of Contents

This page provides information about the Color Arithmetic node in V-Ray for Cinema 4D. 


Overview



The Color Arithmetic node performs an arithmetic operation between two colors/textures.

For the example here, a Bitmap node is attached to Color A and Color B is set to a light orange color. The Mode is set to Result A, and this Output is connected to the Bump slot of the V-Ray Material node, which means that it is taking the original bitmap to use as a bump map. The Product of the two Color slots is connected to the Diffuse of the V-Ray Material, resulting in an orange-tinted brick map.



Inputs



Color A – Specifies the first color/texture.

Mult A – A multiplier for Color A.

Color B – Specifies the second color/texture.

Mult BA multiplier for Color B.

Alpha from Input – When enabled, the alpha value is derived from the Color A shader. In case the Mode is set to Result B, the alpha is derived from the Color B shader.

Result Alpha – Determines a value that overrides the alpha value in the output.

Mode – Specifies the calculation method for the two colors/textures. The selected mode determines the data being output from the Output slot. Additional output slots include Average, Sum, and Product, which output the data produced by the respective mode. Alpha outputs the alpha value from the node. 

Result A – Returns the value of A (color_a*mult_a)
Result B
– Returns the value of B (color_b*mult_b)
Product 
– Performs a multiplication operation and returns the product (A*B).
Sum – Performs an addition operation and returns the sum (A+B).

Difference – Performs a subtraction operation and returns the difference (A-B).
Power – Performs an exponentiation operation and returns the power (A^B).
Division – Performs a division operation and returns the quotient (A/B).
Minimum – Performs a comparison and returns the minimum value.
Maximum – Performs a comparison and returns the maximum value.
Absolute Difference – Performs a subtraction operation and returns the difference as an absolute value (abs(A-B)).
Lower Intensity Color
– Returns the value of whichever Color parameter has the lowest intensity.
Greater Intensity Color
– Returns the value of whichever Color parameter has the greatest intensity.  

Sin – Performs a sine function and returns the result (sin(A)).
Cos – Performs a cosine function and returns the result (cos(A)).
Abs – Returns the absolute value of the first argument (abs(color_a*mult_a)
Ceil – Performs a ceiling function that rounds up to the next integer that is equal to or greater than the largest argument - A or B (ceil(A)); (ceil(B)).
Exp – Performs an exponential function (ea+b).
Floor – Performs a floor function that rounds down to the next integer that is equal to or smaller than the smallest argument - A or B (floor(A)); (floor(B)).
Log – Performs a natural logarithmic function (ln(A)).
Log 10 – Performs a common logarithmic function (base 10) on the first argument (log(A)).
Sqrt – Performs a square root function (√A).
Fmod – Performs a division operation and returns the remainder (A%B). 
Average – Returns the average of A and B (((color_a*mult_a)+(color_b*mult_b))/2)
Tan – Performs a tangent function and returns the result (tan(A.0)).
Asin – Performs an arcsine function and returns the result (asin(A).
Acos – Performs an arccosine function and returns the result (acos(A)).
Atan – Performs an arctangent function and returns the result (atan(A)).
Atan 2 – Performs an arctangent function with two arguments and returns the result (atan2(A,B)).
Bias Schlick – Performs a faster bias approximation, described by Christophe Schlick, based on the original definition by Kenneth Perlin.1
Gain Schlick – Performs a faster gain approximation, described by Christophe Schlick, based on the original definition by Kenneth Perlin.2
Bias Perlin – Implements the original bias definition by Kenneth Perlin.3
Gain Perlin – Implements the original gain definition by Kenneth Perlin.4



Bias and Gain Equations


The exact equations for the Christophe Schlick and Kenneth Perlin definitions are:

  1. bias_schlick(x, a) := x / ((1 / a - 2) * (1 - x) + 1)
  2. gain_shclick(x, a) :=
      { bias_schlick(2 * x, a) / 2 , if a < 0.5 }
      { (bias_schlick(2 * x - 1, 1 - a) + 1) / 2 , if a >= 0.5 }
  3. bias_perlin(x, a) := x ^ (ln(a) / ln(0.5))
  4. gain_perlin(x, a) :=
      { bias_perlin(2 * x, 1 - a) / 2 , if a < 0.5 }
      { 1 - bias_perlin(2 - 2 * x, 1 - a) / 2 , if a >= 0.5 }


References


[*] Kenneth Perlin and Eric M Hoffert. Hypertexture. SIGGRAPH, 1989.
[*] Christophe Schlick. Fast alternatives to Perlin’s bias and gain functions. Graphics Gems, 4, 1994


Was this helpful?