//Generate the height map and stash void Chunk::generateData() { auto mountain = new noise::module::RidgedMulti(); mountain->SetOctaveCount(20); mountain->SetFrequency(0.2); auto baseFlat = new noise::module::Billow(); baseFlat->SetOctaveCount(20); auto flatTerrain = new noise::module::ScaleBias(); flatTerrain->SetSourceModule(0, *baseFlat); flatTerrain->SetScale(0.125); flatTerrain->SetBias(-0.96); //Perlin to control which type of terrain to generate auto terrainType = new noise::module::Perlin(); terrainType->SetOctaveCount(4); terrainType->SetFrequency(0.5); terrainType->SetPersistence(0.25); auto select = new noise::module::Select(); m_noiseModule = select; select->SetSourceModule(0, *flatTerrain); select->SetSourceModule(1, *mountain); select->SetControlModule(*terrainType); select->SetBounds(0.0, 1000.0); select->SetEdgeFalloff(0.6); m_modules.push_back(mountain); m_modules.push_back(baseFlat); m_modules.push_back(flatTerrain); m_modules.push_back(terrainType); }
void LandGen::setup(s32 type) { //sets the general settings for the Perlin Noise function which controls ALL of the other modules noise.SetOctaveCount(8); //default noise.SetFrequency(0.5); //default 1 noise.SetPersistence(0.33); //default 0.5 //switch(type) { //default: //default for the switch, generates a calm plain with a few mountains baseFlat.SetFrequency(2.0); plains.SetSourceModule(0,baseFlat); plains.SetScale(0.4); //0.125 0.4 plains.SetBias(0.5); //-0.5 1.75 final.SetSourceModule(0,sharpMountain); final.SetSourceModule(1,plains);