int i,j,step;
float m = maxDispH;
int largura = (int)Math.pow(2,numIteracoes) + 1;
Terreno terreno = new Terreno(largura, largura);
terreno.setEscalaX(256.0f/(float)Math.pow(2,numIteracoes));
terreno.setEscalaZ(256.0f/(float)Math.pow(2,numIteracoes));
for (step = terreno.getLargura()-1; step > 1; step /= 2) {
for (i = 0;i<terreno.getProfundidade()-2;i+=step) {
for(j=0;j<terreno.getLargura()-2;j+=step) {
diamondStep(terreno, i,j,step,m);
}
}
for (i = 0;i<terreno.getProfundidade()-2;i+=step) {
for(j=0;j<terreno.getLargura()-2;j+=step) {
squareStep(terreno,i,j,step,m);
}
}
m *= Math.pow(2,-rougness);
}