在对象C中使用Brad Larson GPUImage对照片创build草图效果
嗨,我想尝试在iOS
使用Brad Larson的GPUImage
sdk对照片进行素描效果。 我正在试图创build这样的素描效果
但是我得到的素描效果就是这样
我正在使用GPUImageSketchFilter来创build这个效果,下面是我提供的参数来实现这个效果:
setTexelHeight:(1.12 / 480.0) setTexelWidth:(0.5 / 320.0)
请build议我如何达到这个效果..
布拉德去你的build议,我有这个…
我的目标:我需要使正确的形象看起来像左边的..请build议我..!
Theres关于您面临的问题的一些信息。希望这可以帮助你。 http://iphonedevsdk.com/forum/iphone-sdk-development/103548-pencil-sketch-of-an-image-in-iphone-sdk.html
我已经看到了一个更好的草图效果代码,但是我不擅长过滤,我不能为GPUImage写一个自定义filter来应用这个:
float res = iResolution.x; float n0 = 97.0 / res; float n1 = 15.0 / res; float n2 = 97.0 / res; float n3 = 9.7 / res; float total = n2 + ( 4.0 * n0 ) + ( 4.0 * n1 ); const vec3 div3 = vec3(1.0 / 3.0); void main(void) { float offset, temp1, temp2; vec4 m, p0, p1, p2, p3, p4, p5, p6, p7, p8; offset = n3; p0=texture2D(iCamera,iScreen); p1=texture2D(iCamera,iScreen+vec2(-offset,-offset)); p2=texture2D(iCamera,iScreen+vec2( offset,-offset)); p3=texture2D(iCamera,iScreen+vec2( offset, offset)); p4=texture2D(iCamera,iScreen+vec2(-offset, offset)); offset=n3*2.0; p5=texture2D(iCamera,iScreen+vec2(-offset,-offset)); p6=texture2D(iCamera,iScreen+vec2( offset,-offset)); p7=texture2D(iCamera,iScreen+vec2( offset, offset)); p8=texture2D(iCamera,iScreen+vec2(-offset, offset)); m = (p0 * n2 + (p1 + p2 + p3 + p4) * n0 + (p5 + p6 + p7 + p8) * n1) / total; //convert to b/w temp1 = dot(p0.rgb, div3); temp2 = dot(m.rgb, div3); //color dodge blend mode if (temp2 <= 0.0005) { gl_FragColor = vec4( 1.0, 1.0, 1.0, p0.a); } else { gl_FragColor = vec4( vec3(min(temp1 / temp2, 1.0)), p0.a); } }