Looks like OpenGL shaders. I found this in BlackWhiteFilter:
private final String mBlackWhiteShader = 51 "precision mediump float;\n" + 52 "uniform sampler2D tex_sampler_0;\n" + 53 "uniform vec2 seed;\n" + 54 "uniform float black;\n" + 55 "uniform float scale;\n" + 56 "uniform float stepsize;\n" + 57 "varying vec2 v_texcoord;\n" + 58 "float rand(vec2 loc) {\n" + 59 // Compute sin(theta), theta = 12.9898 x + 78.233y 60 // because floating point has limited range, make theta = theta1 + theta2 61 // where theta1 = 12x + 78y and theta2 = 0.9898x + 0.233y) 62 // Note that theta1 and theta2 cover diffent range of theta. 63 " float theta1 = dot(loc, vec2(0.9898, 0.233));\n" + 64 " float theta2 = dot(loc, vec2(12.0, 78.0));\n" + 65 // Use the property sin(theta) = cos(theta1)*sin(theta2)+sin(theta1)*cos(theta2) 66 // this approach also increases the precisions of sin(theta) 67 " float value = cos(theta1) * sin(theta2) + sin(theta1) * cos(theta2);\n" + 68 // fract(43758.5453 * x) = fract(43758 * x + 0.5453 * x) 69 // keep value of part1 in range: (2^-14 to 2^14). Since 43758 = 117 * 374 70 // fract(43758 * sin(theta)) = mod(221 * mod(198*sin(theta), 1.0), 1.0) 71 // also to keep as much decimal digits, use the property 72 // mod(mod(198*sin(theta)) = mod(mod(197*sin(theta) + sin(theta)) 73 " float temp = mod(197.0 * value, 1.0) + value;\n" + 74 " float part1 = mod(220.0 * temp, 1.0) + temp;\n" + 75 " float part2 = value * 0.5453;\n" + 76 " float part3 = cos(theta1 + theta2) * 0.43758;\n" + 77 " return fract(part1 + part2 + part3);\n" + 78 "}\n" + 79 "void main() {\n" + 80 " vec4 color = texture2D(tex_sampler_0, v_texcoord);\n" + 81 " float dither = rand(v_texcoord + seed);\n" + 82 " vec3 xform = clamp((color.rgb - black) * scale, 0.0, 1.0);\n" + 83 " vec3 temp = clamp((color.rgb + stepsize - black) * scale, 0.0, 1.0);\n" + 84 " vec3 new_color = clamp(xform + (temp - xform) * (dither - 0.5), 0.0, 1.0);\n" + 85 " gl_FragColor = vec4(new_color, color.a);\n" + 86 "}\n"; On Thursday, December 6, 2012 9:47:36 AM UTC-6, bob wrote: > > Does anyone know what most of the EffectFactory effects are like "under > the hood"? > > > Are they basically GLSL shaders? > > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en