diff options
author | Charlie Jolly <charlie> | 2021-03-23 12:21:56 +0300 |
---|---|---|
committer | Charlie Jolly <mistajolly@gmail.com> | 2021-03-23 12:59:20 +0300 |
commit | d3758892987d76749fdf1211ed27ff77f39b5b3b (patch) | |
tree | 0e0b6b2a614b9829255cae77fb75f93696e7df7b /source/blender/gpu | |
parent | 4c19fcacc0b71271ca2fafc87ef5772a819e7075 (diff) |
Nodes: Add Refract and Faceforward functions to Vector Maths nodes
Cycles, Eevee, OSL, Geo, Attribute
Based on outdated refract patch D6619 by @cubic_sloth
`refract` and `faceforward` are standard functions in GLSL, OSL and Godot shader languages.
Adding these functions provides Blender shader artists access to these standard functions.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D10622
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_vector_math.glsl | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_vector_math.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_vector_math.glsl index 0b65fdb229a..60ed098beb3 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_vector_math.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_vector_math.glsl @@ -138,3 +138,15 @@ void vector_math_tangent( { outVector = tan(a); } + +void vector_math_refract( + vec3 a, vec3 b, vec3 c, float scale, out vec3 outVector, out float outValue) +{ + outVector = refract(a, normalize(b), scale); +} + +void vector_math_faceforward( + vec3 a, vec3 b, vec3 c, float scale, out vec3 outVector, out float outValue) +{ + outVector = faceforward(a, b, c); +} |