Exemple #1
0
//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);
}
Exemple #2
0
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);