diff options
author | Charlie Jolly <mistajolly@gmail.com> | 2018-07-13 00:40:18 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-07-13 12:00:10 +0300 |
commit | 30bffb5a3afa2fde165d4fb63a115310d5ddc3e3 (patch) | |
tree | 543109969a99e176340071dfdf85a87594f0db07 /source/blender/gpu | |
parent | f4213c1408619d1071004247ed099e2ba98a3e9a (diff) |
Nodes: add sqrt, ceil, floor and fract to math nodes.
This works for Cycles, Eevee, texture nodes and compositing. It helps to
reduce the number of math nodes required in various node setups.
Differential Revision: https://developer.blender.org/D3537
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_material.glsl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index ce9e82b34f8..2cb92fd1cbc 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -418,6 +418,29 @@ void math_atan2(float val1, float val2, out float outval) outval = atan(val1, val2); } +void math_floor(float val, out float outval) +{ + outval = floor(val); +} + +void math_ceil(float val, out float outval) +{ + outval = ceil(val); +} + +void math_fract(float val, out float outval) +{ + outval = val - floor(val); +} + +void math_sqrt(float val, out float outval) +{ + if (val > 0.0) + outval = sqrt(val); + else + outval = 0.0; +} + void squeeze(float val, float width, float center, out float outval) { outval = 1.0 / (1.0 + pow(2.71828183, -((val - center) * width))); |