vec2 intersectBox(vec4 texel_zero, vec4 texel_dir_norm)
{
float t1,t2;
t1=(0.0-texel_zero.x)/texel_dir_norm.x;
t2=(1.0-texel_zero.x)/texel_dir_norm.x;
float tminX=min(t1,t2);
float tmaxX=max(t1,t2);
t1=(0.0-texel_zero.y)/texel_dir_norm.y;
t2=(1.0-texel_zero.y)/texel_dir_norm.y;
float tminY=min(t1,t2);
float tmaxY=max(t1,t2);
t1=(0.0-texel_zero.z)/texel_dir_norm.z;
t2=(1.0-texel_zero.z)/texel_dir_norm.z;
float tminZ=min(t1,t2);
float tmaxZ=max(t1,t2);
float largest_tmin = max(max(tminX, tminY), max(tminX, tminZ));
float smallest_tmax = min(min(tmaxX, tmaxY), min(tmaxX, tmaxZ));
vec2 result=vec2(largest_tmin,smallest_tmax);
return result;
}