[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