private void CreateDefaultTerrain() { m_map = new short[m_scene.RegionInfo.RegionSizeX * m_scene.RegionInfo.RegionSizeX]; taint = new bool[m_scene.RegionInfo.RegionSizeX / Constants.TerrainPatchSize, m_scene.RegionInfo.RegionSizeY / Constants.TerrainPatchSize]; int x; for (x = 0; x < m_scene.RegionInfo.RegionSizeX; x++) { int y; for (y = 0; y < m_scene.RegionInfo.RegionSizeY; y++) { this[x, y] = TerrainUtil.PerlinNoise2D(x, y, 2, 0.125f) * 10; float spherFacA = TerrainUtil.SphericalFactor(x, y, m_scene.RegionInfo.RegionSizeX / 2, m_scene.RegionInfo.RegionSizeY / 2, 50) * 0.01f; float spherFacB = TerrainUtil.SphericalFactor(x, y, m_scene.RegionInfo.RegionSizeX / 2, m_scene.RegionInfo.RegionSizeY / 2, 100) * 0.001f; if (m_map[y * m_scene.RegionInfo.RegionSizeX + x] < spherFacA) { this[x, y] = spherFacA; } if (m_map[y * m_scene.RegionInfo.RegionSizeX + x] < spherFacB) { this[x, y] = spherFacB; } } } }
public TerrainChannel() { map = new double[Constants.RegionSize, Constants.RegionSize]; taint = new bool[Constants.RegionSize / 16, Constants.RegionSize / 16]; int x; for (x = 0; x < Constants.RegionSize; x++) { int y; for (y = 0; y < Constants.RegionSize; y++) { map[x, y] = TerrainUtil.PerlinNoise2D(x, y, 2, 0.125) * 10; double spherFacA = TerrainUtil.SphericalFactor(x, y, Constants.RegionSize / 2.0, Constants.RegionSize / 2.0, 50) * 0.01; double spherFacB = TerrainUtil.SphericalFactor(x, y, Constants.RegionSize / 2.0, Constants.RegionSize / 2.0, 100) * 0.001; if (map[x, y] < spherFacA) { map[x, y] = spherFacA; } if (map[x, y] < spherFacB) { map[x, y] = spherFacB; } } } }
// Fill the heightmap with the center bump terrain private void PinHeadIsland() { for (int x = 0; x < Width; x++) { for (int y = 0; y < Height; y++) { m_terrainData[x, y] = (float)TerrainUtil.PerlinNoise2D(x, y, 2, 0.125) * 10; float spherFacA = (float)(TerrainUtil.SphericalFactor(x, y, m_terrainData.SizeX / 2.0, m_terrainData.SizeY / 2.0, 50) * 0.01d); float spherFacB = (float)(TerrainUtil.SphericalFactor(x, y, m_terrainData.SizeX / 2.0, m_terrainData.SizeY / 2.0, 100) * 0.001d); if (m_terrainData[x, y] < spherFacA) { m_terrainData[x, y] = spherFacA; } if (m_terrainData[x, y] < spherFacB) { m_terrainData[x, y] = spherFacB; } } } }
private void PinHeadIsland() { int x; for (x = 0; x < Constants.RegionSize; x++) { int y; for (y = 0; y < Constants.RegionSize; y++) { map[x, y] = TerrainUtil.PerlinNoise2D(x, y, 2, 0.125) * 10; double spherFacA = TerrainUtil.SphericalFactor(x, y, Constants.RegionSize / 2.0, Constants.RegionSize / 2.0, 50) * 0.01; double spherFacB = TerrainUtil.SphericalFactor(x, y, Constants.RegionSize / 2.0, Constants.RegionSize / 2.0, 100) * 0.001; if (map[x, y] < spherFacA) { map[x, y] = spherFacA; } if (map[x, y] < spherFacB) { map[x, y] = spherFacB; } } } }