float[][] getCameraVectorsNormal(int resX, int resY){ //returns resX*resY nprmalized camera vectors
        float vectors[][]=new float[resX*resY][3];//first vector index, second the components of the vector
        float[] vect2=rotateYVector(dir);
        vect2[1]=0;
        vect2=normalize(vect2);
        float[] vect3=normalize(vectorProduct(dir, vect2));//dir, vect2, vect3 base vectors
        float[] x={0,0,0};
        float[] y={0,0,0};
        float[] temp={0,0,0};
        for(int i=0;i<3;i++){
            x[i]=(vect2[i])/(resX/2);
            y[i]=(vect3[i])/(resY/2);
            temp[i]=vect2[i];
        }
        
        for(int j=0;j<resY;j++){
            for(int i=0;i<resX;i++){
                vectors[j*resX+i][0]=dir[0]+vect2[0]+vect3[0];
                vectors[j*resX+i][1]=dir[1]+vect2[1]+vect3[1];
                vectors[j*resX+i][2]=dir[2]+vect2[2]+vect3[2];
                vectors[j*resX+i]=normalize(vectors[j*resX+i]);
                vect2[0]-=x[0];
                vect2[1]-=x[1];
                vect2[2]-=x[2];
                if((vectorLength(vect2)>(-0.0001)&&vectorLength(vect2)<0.0001)&&(resX%2)==0){
                    vect2[0]-=x[0];
                    vect2[1]-=x[1];
                    vect2[2]-=x[2];
                }
            }
            //printVector(temp);
            vect2[0]=temp[0];
            vect2[1]=temp[1];
            vect2[2]=temp[2];
            vect3[0]-=y[0];
            vect3[1]-=y[1];
            vect3[2]-=y[2];
            if((vectorLength(vect3)>(-0.0001)&&vectorLength(vect3)<0.0001)&&(resY%2)==0){
                vect3[0]-=y[0];
                vect3[1]-=y[1];
                vect3[2]-=y[2];
            }
        }
        
        return vectors;
    }