 }
 
 void main(){
+  dtnn = getDTNN(tex_dtnn, jump.yy);
+  ivec2 ddxy = dtnn - pos;
+  dmin = LENGTH_SQ(ddxy);
+  
   DTNN(jump.xx); DTNN(jump.yx); DTNN(jump.zx);
-  DTNN(jump.xy); DTNN(jump.yy); DTNN(jump.zy);
+  DTNN(jump.xy);                DTNN(jump.zy);
   DTNN(jump.xz); DTNN(jump.yz); DTNN(jump.zz);
 
   out_dtnn = dtnn;
 }
 
+// void main(){
+  // DTNN(jump.xx); DTNN(jump.yx); DTNN(jump.zx);
+  // DTNN(jump.xy); DTNN(jump.yy); DTNN(jump.zy);
+  // DTNN(jump.xz); DTNN(jump.yz); DTNN(jump.zz);
+
+  // out_dtnn = dtnn;
+// }
+
 #endif // PASS_DTNN
 

ivec2 dtnn = ivec2(POS_MAX);
int   dmin = LENGTH_SQ(dtnn);

void DTNN(const ivec2 off){
  ivec2 dtnn_cur = getDTNN(tex_dtnn, off);
  ivec2 ddxy = dtnn_cur - pos;
  int dcur = LENGTH_SQ(ddxy);


out ivec2 out_pos;
uniform vec4 mask = vec4(1,1,1,0);
uniform int XOR = 0; // 1 to invert mask
uniform sampler2D	tex_mask;

void main(){
