Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. ((function refract
  2.    (signature float
  3.      (parameters
  4.        (declare (in) float i)
  5.        (declare (in) float n)
  6.        (declare (in) float eta))
  7.      ((declare () float k)
  8.       (assign (x) (var_ref k)
  9.               (expression float - (constant float (1.0))
  10.                 (expression float * (var_ref eta)
  11.                   (expression float * (var_ref eta)
  12.                     (expression float - (constant float (1.0))
  13.                       (expression float *
  14.                         (expression float * (var_ref n) (var_ref i))
  15.                         (expression float * (var_ref n) (var_ref i))))))))
  16.       (if (expression bool < (var_ref k) (constant float (0.0)))
  17.           ((return (constant float (0.0))))
  18.           ((return (expression float -
  19.                      (expression float * (var_ref eta) (var_ref i))
  20.                      (expression float *
  21.                        (expression float +
  22.                          (expression float * (var_ref eta)
  23.                            (expression float * (var_ref n) (var_ref i)))
  24.                          (expression float sqrt (var_ref k)))
  25.                        (var_ref n))))))))
  26.  
  27.    (signature vec2
  28.      (parameters
  29.        (declare (in) vec2 i)
  30.        (declare (in) vec2 n)
  31.        (declare (in) float eta))
  32.      ((declare () float k)
  33.       (assign (x) (var_ref k)
  34.               (expression float - (constant float (1.0))
  35.                 (expression float * (var_ref eta)
  36.                   (expression float * (var_ref eta)
  37.                     (expression float - (constant float (1.0))
  38.                       (expression float *
  39.                         (expression float dot (var_ref n) (var_ref i))
  40.                         (expression float dot (var_ref n) (var_ref i))))))))
  41.       (if (expression bool < (var_ref k) (constant float (0.0)))
  42.           ((return (constant vec2 (0.0 0.0))))
  43.           ((return (expression vec2 -
  44.                      (expression vec2 * (var_ref eta) (var_ref i))
  45.                      (expression vec2 *
  46.                        (expression float +
  47.                          (expression float * (var_ref eta)
  48.                            (expression float dot (var_ref n) (var_ref i)))
  49.                          (expression float sqrt (var_ref k)))
  50.                        (var_ref n))))))))
  51.  
  52.    (signature vec3
  53.      (parameters
  54.        (declare (in) vec3 i)
  55.        (declare (in) vec3 n)
  56.        (declare (in) float eta))
  57.      ((declare () float k)
  58.       (assign (x) (var_ref k)
  59.               (expression float - (constant float (1.0))
  60.                 (expression float * (var_ref eta)
  61.                   (expression float * (var_ref eta)
  62.                     (expression float - (constant float (1.0))
  63.                       (expression float *
  64.                         (expression float dot (var_ref n) (var_ref i))
  65.                         (expression float dot (var_ref n) (var_ref i))))))))
  66.       (if (expression bool < (var_ref k) (constant float (0.0)))
  67.           ((return (constant vec3 (0.0 0.0 0.0))))
  68.           ((return (expression vec3 -
  69.                      (expression vec3 * (var_ref eta) (var_ref i))
  70.                      (expression vec3 *
  71.                        (expression float +
  72.                          (expression float * (var_ref eta)
  73.                            (expression float dot (var_ref n) (var_ref i)))
  74.                          (expression float sqrt (var_ref k)))
  75.                        (var_ref n))))))))
  76.  
  77.    (signature vec4
  78.      (parameters
  79.        (declare (in) vec4 i)
  80.        (declare (in) vec4 n)
  81.        (declare (in) float eta))
  82.      ((declare () float k)
  83.       (assign (x) (var_ref k)
  84.               (expression float - (constant float (1.0))
  85.                 (expression float * (var_ref eta)
  86.                   (expression float * (var_ref eta)
  87.                     (expression float - (constant float (1.0))
  88.                       (expression float *
  89.                         (expression float dot (var_ref n) (var_ref i))
  90.                         (expression float dot (var_ref n) (var_ref i))))))))
  91.       (if (expression bool < (var_ref k) (constant float (0.0)))
  92.           ((return (constant vec4 (0.0 0.0 0.0 0.0))))
  93.           ((return (expression vec4 -
  94.                      (expression vec4 * (var_ref eta) (var_ref i))
  95.                      (expression vec4 *
  96.                        (expression float +
  97.                          (expression float * (var_ref eta)
  98.                            (expression float dot (var_ref n) (var_ref i)))
  99.                          (expression float sqrt (var_ref k)))
  100.                        (var_ref n))))))))
  101.  
  102. ))
  103.