void PlaneGenerator::generate(int width, int height, int noise) { vertices_ = genVertices(width, height, noise); indices_ = genIndices(width, height); normals_ = genNormals(width, height); textureCoords_ = genTextureCoords(width, height); Utils::dumpVec(textureCoords_, "texCoords.log"); }
/** * Genera los parámetros iniciales del terreno */ void genTerreno(){ int i, j; int maximo = -(((unsigned int)-1)/2); int minimo = 2147483647; // Alturas generadas con ruido Perlin //alturas = genPerlinNoise(256, 12, 30, 1); suave = false; alturas = genPerlinNoise(ANCHO, 38, 400); suave = true; //writePGMint("../../alturas.pgm", alturas, ANCHO); for(i = 0; i < ALTO; i++){ for(j = 0; j < ANCHO; j++){ if(maximo < alturas[i][j]) maximo = alturas[i][j]; if(minimo > alturas[i][j]) minimo = alturas[i][j]; } } // "Normalizamos" maximo -= minimo; for(i = 0; i < ALTO; i++){ for(j = 0; j < ANCHO; j++){ alturas[i][j] = alturas[i][j] - minimo; // Bajamos la altura de todo } } // Pone la cámara en el punto más alto camY = maximo*RELIEVE; // Genera todos los parámetros en el orden necesario genVertices(alturas, suave); genNormalesLago(); genLago(); genNormalesT(); genNormalesV(); genColores(10); genArboles(1); genEstrellas(); }