Exemplo n.º 1
0
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");
}
Exemplo n.º 2
0
/**
 * 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();
}