[Bf-blender-cvs] [67474a7e622] soc-2019-cycles-procedural: Merge master to soc-2019-cycles-procedural.

OmarSquircleArt noreply at git.blender.org
Sat Aug 10 15:17:05 CEST 2019


Commit: 67474a7e622957044bc708119a7cfa49a82790fd
Author: OmarSquircleArt
Date:   Sat Aug 10 15:18:12 2019 +0200
Branches: soc-2019-cycles-procedural
https://developer.blender.org/rB67474a7e622957044bc708119a7cfa49a82790fd

Merge master to soc-2019-cycles-procedural.

===================================================================



===================================================================

diff --cc source/blender/gpu/shaders/gpu_shader_material.glsl
index 806bffea806,00b8ce54eb3..69e01882d50
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@@ -363,119 -275,152 +363,117 @@@ void math_power(float a, float b, out f
    }
  }
  
 -void math_sine(float val, out float outval)
 +void math_logarithm(float a, float b, out float result)
  {
 -  outval = sin(val);
 +  result = (a > 0.0 && b > 0.0) ? log2(a) / log2(b) : 0.0;
  }
  
 -void math_cosine(float val, out float outval)
 +void math_sqrt(float a, float b, out float result)
  {
 -  outval = cos(val);
 +  result = (a > 0.0) ? sqrt(a) : 0.0;
  }
  
 -void math_tangent(float val, out float outval)
 +void math_absolute(float a, float b, out float result)
  {
 -  outval = tan(val);
 +  result = abs(a);
  }
  
 -void math_asin(float val, out float outval)
 +void math_minimum(float a, float b, out float result)
  {
 -  if (val <= 1.0 && val >= -1.0) {
 -    outval = asin(val);
 -  }
 -  else {
 -    outval = 0.0;
 -  }
 +  result = min(a, b);
  }
  
 -void math_acos(float val, out float outval)
 +void math_maximum(float a, float b, out float result)
  {
 -  if (val <= 1.0 && val >= -1.0) {
 -    outval = acos(val);
 -  }
 -  else {
 -    outval = 0.0;
 -  }
 +  result = max(a, b);
  }
  
 -void math_atan(float val, out float outval)
 +void math_less_than(float a, float b, out float result)
  {
 -  outval = atan(val);
 +  result = (a < b) ? 1.0 : 0.0;
  }
  
 -void math_pow(float val1, float val2, out float outval)
 +void math_greater_than(float a, float b, out float result)
  {
 -  if (val1 >= 0.0) {
 -    outval = compatible_pow(val1, val2);
 -  }
 -  else {
 -    float val2_mod_1 = mod(abs(val2), 1.0);
 +  result = (a > b) ? 1.0 : 0.0;
 +}
  
 -    if (val2_mod_1 > 0.999 || val2_mod_1 < 0.001) {
 -      outval = compatible_pow(val1, floor(val2 + 0.5));
 -    }
 -    else {
 -      outval = 0.0;
 -    }
 -  }
 +void math_round(float a, float b, out float result)
 +{
 +  result = floor(a + 0.5);
  }
  
 -void math_log(float val1, float val2, out float outval)
 +void math_floor(float a, float b, out float result)
  {
 -  if (val1 > 0.0 && val2 > 0.0) {
 -    outval = log2(val1) / log2(val2);
 -  }
 -  else {
 -    outval = 0.0;
 -  }
 +  result = floor(a);
  }
  
 -void math_max(float val1, float val2, out float outval)
 +void math_ceil(float a, float b, out float result)
  {
 -  outval = max(val1, val2);
 +  result = ceil(a);
  }
  
 -void math_min(float val1, float val2, out float outval)
 +void math_fraction(float a, float b, out float result)
  {
 -  outval = min(val1, val2);
 +  result = a - floor(a);
  }
  
 -void math_round(float val, out float outval)
 +void math_modulo(float a, float b, out float result)
  {
-   result = (b != 0.0) ? mod(a, b) : 0.0;
- 
 -  outval = floor(val + 0.5);
 +  /* Change sign to match C convention, mod in GLSL will take absolute for negative numbers.
 +   * See https://www.opengl.org/sdk/docs/man/html/mod.xhtml
 +   */
-   result = (a > 0.0) ? result : result - b;
++  result = (b != 0.0) ? sign(a) * mod(abs(a), b) : 0.0;
  }
  
 -void math_less_than(float val1, float val2, out float outval)
 +void math_sine(float a, float b, out float result)
  {
 -  if (val1 < val2) {
 -    outval = 1.0;
 -  }
 -  else {
 -    outval = 0.0;
 -  }
 +  result = sin(a);
  }
  
 -void math_greater_than(float val1, float val2, out float outval)
 +void math_cosine(float a, float b, out float result)
  {
 -  if (val1 > val2) {
 -    outval = 1.0;
 -  }
 -  else {
 -    outval = 0.0;
 -  }
 +  result = cos(a);
  }
  
 -void math_modulo(float val1, float val2, out float outval)
 +void math_tangent(float a, float b, out float result)
  {
 -  if (val2 == 0.0) {
 -    outval = 0.0;
 -  }
 -  else {
 -    /* change sign to match C convention, mod in GLSL will take absolute for negative numbers,
 -     * see https://www.opengl.org/sdk/docs/man/html/mod.xhtml */
 -    outval = sign(val1) * mod(abs(val1), val2);
 -  }
 +  result = tan(a);
  }
  
 -void math_abs(float val1, out float outval)
 +void math_arcsine(float a, float b, out float result)
  {
 -  outval = abs(val1);
 +  result = (a <= 1.0 && a >= -1.0) ? asin(a) : 0.0;
  }
  
 -void math_atan2(float val1, float val2, out float outval)
 +void math_arccosine(float a, float b, out float result)
  {
 -  outval = atan(val1, val2);
 +  result = (a <= 1.0 && a >= -1.0) ? acos(a) : 0.0;
  }
  
 -void math_floor(float val, out float outval)
 +void math_arctangent(float a, float b, out float result)
  {
 -  outval = floor(val);
 +  result = atan(a);
  }
  
 -void math_ceil(float val, out float outval)
 +void math_arctan2(float a, float b, out float result)
  {
 -  outval = ceil(val);
 +  result = atan(a, b);
  }
  
 -void math_fract(float val, out float outval)
 +void squeeze(float val, float width, float center, out float outval)
  {
 -  outval = val - floor(val);
 +  outval = 1.0 / (1.0 + pow(2.71828183, -((val - center) * width)));
  }
  
 -void math_sqrt(float val, out float outval)
 +void map_range(
 +    float value, float fromMin, float fromMax, float toMin, float toMax, out float result)
  {
 -  if (val > 0.0) {
 -    outval = sqrt(val);
 +  if (fromMax != fromMin) {
 +    result = toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
    }
    else {
 -    outval = 0.0;
 +    result = 0.0;
    }
  }



More information about the Bf-blender-cvs mailing list