Hi,
I’m using a shader to interlace the image of two cameras. The left camera is displayed in the odd rows, the right camera is displayed in the even rows.
It works fine on PC, but on an Android tablet, it only works for HALF the screen, then the interlacing becomes weird and faulty.
I think this is a floating point precision issue. How can I get rid of it?
Pass {
ZTest Always
Cull Off
ZWrite Off
Fog {
Mode off
}
CGPROGRAM
#pragma vertex vert_img
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_nicest
#include "UnityCG.cginc"
uniform float _Weave_X; //columns, here 1920
uniform float _Weave_Y; //rows, here 1200
uniform sampler2D _LeftTex;
uniform sampler2D _RightTex;
float4 frag( v2f_img IN ) : COLOR0 {
float3 left = tex2D( _LeftTex, IN.uv ).rgb; // Sample scene texture
float3 right = tex2D( _RightTex, IN.uv ).rgb; // Sample scene texture
int x = fmod(floor( IN.uv.x*_Weave_X) + floor(IN.uv.y*_Weave_Y),2); //checks if even or odd
return float4( lerp( left, right, x ), 0.0 ); //interpolated between even and odd pixels
}
ENDCG
}
Thanks in advance!