mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-29 18:10:23 +01:00
102 lines
3.8 KiB
Text
102 lines
3.8 KiB
Text
((function refract
|
|
(signature float
|
|
(parameters
|
|
(declare (in) float i)
|
|
(declare (in) float n)
|
|
(declare (in) float eta))
|
|
((declare () float k)
|
|
(assign (constant bool (1)) (var_ref k)
|
|
(expression float - (constant float (1.0))
|
|
(expression float * (var_ref eta)
|
|
(expression float * (var_ref eta)
|
|
(expression float - (constant float (1.0))
|
|
(expression float *
|
|
(expression float dot (var_ref n) (var_ref i))
|
|
(expression float dot (var_ref n) (var_ref i))))))))
|
|
(if (expression bool < (var_ref k) (constant float (0.0)))
|
|
((return (constant float (0.0))))
|
|
((return (expression float -
|
|
(expression float * (var_ref eta) (var_ref i))
|
|
(expression float *
|
|
(expression float +
|
|
(expression float * (var_ref eta)
|
|
(expression float dot (var_ref n) (var_ref i)))
|
|
(expression float sqrt (var_ref k)))
|
|
(var_ref n))))))))
|
|
|
|
(signature vec2
|
|
(parameters
|
|
(declare (in) vec2 i)
|
|
(declare (in) vec2 n)
|
|
(declare (in) float eta))
|
|
((declare () float k)
|
|
(assign (constant bool (1)) (var_ref k)
|
|
(expression float - (constant float (1.0))
|
|
(expression float * (var_ref eta)
|
|
(expression float * (var_ref eta)
|
|
(expression float - (constant float (1.0))
|
|
(expression float *
|
|
(expression float dot (var_ref n) (var_ref i))
|
|
(expression float dot (var_ref n) (var_ref i))))))))
|
|
(if (expression bool < (var_ref k) (constant float (0.0)))
|
|
((return (constant vec2 (0.0 0.0))))
|
|
((return (expression vec2 -
|
|
(expression vec2 * (var_ref eta) (var_ref i))
|
|
(expression vec2 *
|
|
(expression float +
|
|
(expression float * (var_ref eta)
|
|
(expression float dot (var_ref n) (var_ref i)))
|
|
(expression float sqrt (var_ref k)))
|
|
(var_ref n))))))))
|
|
|
|
(signature vec3
|
|
(parameters
|
|
(declare (in) vec3 i)
|
|
(declare (in) vec3 n)
|
|
(declare (in) float eta))
|
|
((declare () float k)
|
|
(assign (constant bool (1)) (var_ref k)
|
|
(expression float - (constant float (1.0))
|
|
(expression float * (var_ref eta)
|
|
(expression float * (var_ref eta)
|
|
(expression float - (constant float (1.0))
|
|
(expression float *
|
|
(expression float dot (var_ref n) (var_ref i))
|
|
(expression float dot (var_ref n) (var_ref i))))))))
|
|
(if (expression bool < (var_ref k) (constant float (0.0)))
|
|
((return (constant vec3 (0.0 0.0))))
|
|
((return (expression vec3 -
|
|
(expression vec3 * (var_ref eta) (var_ref i))
|
|
(expression vec3 *
|
|
(expression float +
|
|
(expression float * (var_ref eta)
|
|
(expression float dot (var_ref n) (var_ref i)))
|
|
(expression float sqrt (var_ref k)))
|
|
(var_ref n))))))))
|
|
|
|
(signature vec4
|
|
(parameters
|
|
(declare (in) vec4 i)
|
|
(declare (in) vec4 n)
|
|
(declare (in) float eta))
|
|
((declare () float k)
|
|
(assign (constant bool (1)) (var_ref k)
|
|
(expression float - (constant float (1.0))
|
|
(expression float * (var_ref eta)
|
|
(expression float * (var_ref eta)
|
|
(expression float - (constant float (1.0))
|
|
(expression float *
|
|
(expression float dot (var_ref n) (var_ref i))
|
|
(expression float dot (var_ref n) (var_ref i))))))))
|
|
(if (expression bool < (var_ref k) (constant float (0.0)))
|
|
((return (constant vec4 (0.0 0.0))))
|
|
((return (expression vec4 -
|
|
(expression vec4 * (var_ref eta) (var_ref i))
|
|
(expression vec4 *
|
|
(expression float +
|
|
(expression float * (var_ref eta)
|
|
(expression float dot (var_ref n) (var_ref i)))
|
|
(expression float sqrt (var_ref k)))
|
|
(var_ref n))))))))
|
|
|
|
))
|