double u = 0, v = smallerFrom * dv;
int index = smallerFrom * sizeX * 3;
for (int y = smallerFrom; y < biggerTo; y++) {
for (int x = 0; x < sizeX; x++) {
pointTop.lerpLocal(intersectTopLeft, intersectTopRight, u);
pointBottom.lerpLocal(intersectBottomLeft, intersectBottomRight, u);
pointFinal.lerpLocal(pointTop, pointBottom, v);
pointFinal.setX(pointFinal.getX() / pointFinal.getW());
pointFinal.setZ(pointFinal.getZ() / pointFinal.getW());
pointFinal.setY(heightGenerator.getHeight(pointFinal.getX(), pointFinal.getZ(), time));