Is there a trick to getting Blippar to work?

I have tried to work through the instructions provided here:

But I notice that the images aren’t showing on the page, and when I try to launch using the Blippar scripts I get Vertex and Fragment shader errors.

Here is what I get:

VERTEX_SHADER
1: #version 100
2: precision mediump float;attribute vec4 a_position;attribute vec2 a_texcoord;uniform mat4 u_matrix;varying vec2 v_texCoord;void main(){v_texCoord=a_texcoord,gl_Position=u_matrix*a_position;}}
FRAGMENT_SHADER
1: #version 100
2: precision mediump float;varying vec2 v_texCoord;uniform sampler2D u_frame;uniform vec2 u_offsetRatio;uniform float u_scoreMin,u_scoreLoopback,u_IntensityDiffMin;uniform bool u_enableBlur;
3: #define TEXEL_R(p)texture2D(u_frame,v_texCoord+p*u_offsetRatio).r
4: #define TEXEL_G(p)texture2D(u_frame,v_texCoord+p*u_offsetRatio).g
5: #define TEXEL_B(p)texture2D(u_frame,v_texCoord+p*u_offsetRatio).b
6: #define TEXEL_RB(p)texture2D(u_frame,v_texCoord+p*u_offsetRatio).rb
7: #define TEXEL_RGBA(p)texture2D(u_frame,v_texCoord+p*u_offsetRatio).rgba
8: #define MIN_2(a,b)min(a,b)
9: #define MIN_3(a,b,c)min(min(a,b),c)
10: #define MIN_4(a,b,c,d)min(a,min(b,min(c,d)))
11: #define MIN_5(a,b,c,d,e)min(a,min(b,min(c,min(d,e))))
12: #define MIN_6(a,b,c,d,e,f)min(a,min(b,min(c,min(d,min(e,f)))))
13: #define MAX_2(a,b)max(a,b)
14: #define MAX_3(a,b,c)max(max(a,b),c)
15: #define MAX_4(a,b,c,d)max(a,max(b,max(c,d)))
16: #define MAX_5(a,b,c,d,e)max(a,max(b,max(c,max(d,e))))
17: #define MAX_6(a,b,c,d,e,f)max(a,max(b,max(c,max(d,max(e,f)))))
18: float e(float an,vec4 ao,vec4 ap,vec4 aq){float ar=MIN_3(ao.y,ao.z,ao.w);if(ar>an){ar=MIN_6(ar,ap.x,ap.y,ap.z,ap.w,aq.x);float as=MIN_2(ar,ao.x),at=MIN_2(ar,aq.y);an=MAX_3(an,as,at);}return an;}float o(float au,vec4 ao,vec4 ap,vec4 aq){float ar=MIN_3(ao.w,ap.x,ap.y);if(ar>au){ar=MIN_6(ar,ap.z,ap.w,aq.x,aq.y,aq.z);float as=MIN_2(ar,ao.z),at=MIN_2(ar,aq.w);au=MAX_3(au,as,at);}return au;}float t(float av,vec4 ao,vec4 ap,vec4 aq){float aw=MAX_5(ao.y,ao.z,ao.w,ap.x,ap.y);if(aw19: #define polarity(v)sign(v)*step(u_IntensityDiffMin,abs(v))
20: #define similarity(a)all(equal(a,vec4(1.0,1.0,1.0,1.0)))||all(equal(a,vec4(-1.0,-1.0,-1.0,-1.0)))
21: float a(vec4 ar,vec4 aw){if(aw.x!=ar.w)return 0.;if(aw.x!=ar.z)return 1.;if(aw.x!=ar.y)return 2.;if(aw.x!=ar.x)return 3.;return 4.;}float e(vec4 ar,vec4 aw){if(ar.w!=aw.x)return 0.;if(ar.w!=aw.y)return 1.;if(ar.w!=aw.z)return 2.;if(ar.w!=aw.w)return 3.;return 4.;}bool i(vec4 aA,vec4 aB,vec4 aC,vec4 aD){vec4 aF=polarity(aA),aG=polarity(aB),aH=polarity(aC),aI=polarity(aD);bool aJ=similarity(aF),aK=similarity(aG),aL=similarity(aH),aM=similarity(aI);float aN=0.,aO=0.;if(aJ)if(aK&&aF==aG){aN=a(aI,aF);aO=e(aG,aH);if(aN+aO<1.)return false;}else if(aM&&aI==aF){aN=a(aH,aI);aO=e(aF,aG);if(aN+aO<1.)return false;}else{aN=a(aI,aF);aO=e(aF,aG);if(aN+aO<5.)return false;}else if(aK)if(aL&&aG==aH){aN=a(aF,aG);aO=e(aH,aI);if(aN+aO<1.)return false;}else{aN=a(aF,aG);aO=e(aG,aH);if(aN+aO<5.)return false;}else if(aL)if(aL&&aM&&aH==aI){aN=a(aG,aH);aO=e(aI,aF);if(aN+aO<1.)return false;}else{aN=a(aG,aH);aO=e(aH,aI);if(aN+aO<5.)return false;}else if(aM){aN=a(aH,aI);aO=e(aI,aF);if(aN+aO<5.)return false;}else return false;return true;}vec2 r(float aP,vec3 aQ,vec3 aR,mat4 aS){vec2 f;if(u_enableBlur)f.x=dot(aQ,vec3(.0657,.1293,.194))+aP*.2221+dot(aR,vec3(.194,.1293,.0657));else f.x=aP;vec4 aA=aS[0]-aP,aB=aS[1]-aP,aC=aS[2]-aP,aD=aS[3]-aP;if(i(aA,aB,aC,aD)){float aT=a(aA,aB,aC,aD,u_scoreMin);f.y=u_scoreLoopback*(aT>=u_scoreMin?aT:0.);}return f;}void main(){vec4 f=vec4(0.,0.,0.,0.),aU=TEXEL_RGBA(vec2(0.,0.));vec2 aV=TEXEL_RB(vec2(0.,-3.)),aW=TEXEL_RB(vec2(-1.,-3.)),aX=TEXEL_RB(vec2(-2.,-2.)),aY=TEXEL_RB(vec2(-3.,-1.)),aZ=TEXEL_RB(vec2(-3.,0.)),ba=TEXEL_RB(vec2(-3.,1.)),bb=TEXEL_RB(vec2(-2.,2.)),bc=TEXEL_RB(vec2(-1.,3.)),bd=TEXEL_RB(vec2(0.,3.)),be=TEXEL_RB(vec2(1.,3.)),bf=TEXEL_RB(vec2(2.,2.)),bg=TEXEL_RB(vec2(3.,1.)),bh=TEXEL_RB(vec2(3.,0.)),bi=TEXEL_RB(vec2(3.,-1.)),bj=TEXEL_RB(vec2(2.,-2.)),bk=TEXEL_RB(vec2(1.,-3.)),bl=TEXEL_RB(vec2(-2.,0.)),bm=TEXEL_RB(vec2(-1.,0.)),bn=TEXEL_RB(vec2(1.,0.)),bo=TEXEL_RB(vec2(2.,0.));vec3 bp=vec3(aZ.x,bl.x,bm.x),bq=vec3(bn.x,bo.x,bh.x);mat4 br=mat4(aV.x,aW.x,aX.x,aY.x,aZ.x,ba.x,bb.x,bc.x,bd.x,be.x,bf.x,bg.x,bh.x,bi.x,bj.x,bk.x);f.xy=r(aU.x,bp,bq,br);f.y=f.y*aU.y;vec3 bs=vec3(aZ.y,bl.y,bm.y),bt=vec3(bn.y,bo.y,bh.y);mat4 bu=mat4(aV.y,aW.y,aX.y,aY.y,aZ.y,ba.y,bb.y,bc.y,bd.y,be.y,bf.y,bg.y,bh.y,bi.y,bj.y,bk.y);f.zw=r(aU.z,bs,bt,bu);f.w=f.w*aU.w;gl_FragColor=f;}}
Error in program linking:

Has anyone had any luck getting Blippar to work in PlayCanvas?

Would be worth checking with Blippar. We have updated the engine so maybe their shaders need updating?

1 Like