public void GenerateHeightMap() { var perlin = new LibNoise.Unity.Generator.Perlin(Frequency, Lacunarity, Persistence, Octaves, Seed, LibNoise.Unity.QualityMode.High); //var ridged = new LibNoise.Unity.Generator.RidgedMultifractal(Frequency, Lacunarity, Octaves, Seed, LibNoise.Unity.QualityMode.Medium); //var turb = new LibNoise.Unity.Operator.Turbulence(0.25, perlin); //var layered = new LibNoise.Unity.Operator.Multiply(perlin, ridged); //var var scaled = new LibNoise.Unity.Operator.ScaleBias(Scaling, ScaleBias, perlin); var final = new LibNoise.Unity.Operator.Terrace(false, scaled); //for (float i = 0; i < 50; i += 10) final.Add(0f); final.Add(10f); final.Add(100f); var noise = new LibNoise.Unity.Noise2D(TotalSize, final); noise.GeneratePlanar(ClipX, ClipX + (ClipSize * ChunksPerSide), ClipY, ClipY + (ClipSize * ChunksPerSide)); GameObject.Destroy(HeightMap); HeightMap = noise.GetTexture(LibNoise.Unity.Gradient.Grayscale); HeightMap.Apply(); GameObject.Destroy(NormalMap); NormalMap = noise.GetNormalMap(1f); NormalMap.Apply(); floatMap = new float[TotalSize * TotalSize]; for (int y = 0; y < TotalSize; y++) for (int x = 0; x < TotalSize; x++) floatMap[y * TotalSize + x] = noise[x, y]; }
public MakePerlin(float seed) { perlin = new Texture2D (256, 256); ModuleBase moduleBase; moduleBase = new Perlin(m_frequency, m_lacunarity, m_persistence, m_octaveCount, (int)seed, m_quality); noiseMap = new Noise2D(perlin.width, perlin.height, moduleBase); float zoom = 1f; float offset = 0f; noiseMap.GeneratePlanar( offset + -1 * 1/zoom, offset + offset + 1 * 1/zoom, offset + -1 * 1/zoom, offset + 1 * 1/zoom); perlin = noiseMap.GetTexture (); }