From 1f3c7d968c4313dbb71bc93306556cc9292d06ef Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Wed, 1 Sep 2010 21:23:52 -0700 Subject: glsl2: Implement noise[1234] built-in functions using ir_unop_noise --- src/glsl/builtins/ir/noise3 | 87 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 71 insertions(+), 16 deletions(-) (limited to 'src/glsl/builtins/ir/noise3') diff --git a/src/glsl/builtins/ir/noise3 b/src/glsl/builtins/ir/noise3 index 30d9681890..f191e145f9 100644 --- a/src/glsl/builtins/ir/noise3 +++ b/src/glsl/builtins/ir/noise3 @@ -1,18 +1,73 @@ ((function noise3 - (signature vec3 - (parameters - (declare (in) float x)) - ((return (constant vec3 (0 0 0))))) - (signature vec3 - (parameters - (declare (in) vec2 x)) - ((return (constant vec3 (0 0 0))))) - (signature vec3 - (parameters - (declare (in) vec3 x)) - ((return (constant vec3 (0 0 0))))) - (signature vec3 - (parameters - (declare (in) vec4 x)) - ((return (constant vec3 (0 0 0))))) + (signature vec3 + (parameters (declare (in) vec4 p)) + ( + (declare () float a) + (declare () float b) + (declare () float c) + (declare () vec3 t) + + (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p))) + (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0))))) + (assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (1559.0 113.0 1861.0 797.0))))) + + (assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a))) + (assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b))) + (assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c))) + (return (var_ref t)) + )) + + (signature vec3 + (parameters (declare (in) vec3 p)) + ( + (declare () float a) + (declare () float b) + (declare () float c) + (declare () vec3 t) + + (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p))) + (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0))))) + (assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (1559.0 113.0 1861.0))))) + + (assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a))) + (assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b))) + (assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c))) + (return (var_ref t)) + )) + + (signature vec3 + (parameters (declare (in) vec2 p)) + ( + (declare () float a) + (declare () float b) + (declare () float c) + (declare () vec3 t) + + (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p))) + (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (601.0 313.0))))) + (assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (1559.0 113.0))))) + + (assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a))) + (assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b))) + (assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c))) + (return (var_ref t)) + )) + + (signature vec3 + (parameters (declare (in) float p)) + ( + (declare () float a) + (declare () float b) + (declare () float c) + (declare () vec3 t) + + (assign (constant bool (1)) (x) (var_ref a) (expression float noise (var_ref p))) + (assign (constant bool (1)) (x) (var_ref b) (expression float noise (expression float + (var_ref p) (constant float (601.0))))) + (assign (constant bool (1)) (x) (var_ref c) (expression float noise (expression float + (var_ref p) (constant float (1559.0))))) + + (assign (constant bool (1)) (x) (var_ref t) (swiz xxx (var_ref a))) + (assign (constant bool (1)) (y) (var_ref t) (swiz xxx (var_ref b))) + (assign (constant bool (1)) (z) (var_ref t) (swiz xxx (var_ref c))) + (return (var_ref t)) + )) )) -- cgit v1.2.3