void GenerateAtmosphere() { if (atmosphereCreated) { DestroyImmediate(Atmosphere); } atmosphereCreated = true; Atmosphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); Atmosphere.transform.position = meshFilters[0].transform.position; Atmosphere.name = "Atmosphere"; Atmosphere.transform.parent = transform; float multiplier = 1 / shapeGenerator.planetRadius; Atmosphere.transform.localScale = new Vector3(multiplier * atmosphereLevel, multiplier * atmosphereLevel, multiplier * atmosphereLevel); atmosphereNoiseFilter = Atmosphere.AddComponent <SimpleNoiseFilter>(); atmosphereNoiseFilter.centre.x = 0.1f; atmosphereNoiseFilter.centre.y = 0.1f; atmosphereNoiseFilter.centre.z = 0.1f; Atmosphere.GetComponent <MeshRenderer>().sharedMaterial = atmosphereMaterial; CalculateAtmosphere(); Atmosphere.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; Atmosphere.GetComponent <Collider>().enabled = false; }
private void Awake() { noiseFilters = new SimpleNoiseFilter[objectSettings.noiseLayers.Length]; for (int i = 0; i < noiseFilters.Length; i++) { noiseFilters[i] = new SimpleNoiseFilter(objectSettings.noiseLayers[i].noiseSettings); } lastObjectSettings = JsonUtility.ToJson(objectSettings); GetComponent <MeshFilter>().mesh = OctahedronSphereCreator.Create(objectSettings, noiseFilters);; GetComponent <Renderer>().material = m_TerrainMaterial; texture = new Texture2D(textureResolution, 1); updateColours(); m_TerrainMaterial.SetVector("_elevationMinMax", new Vector4(objectSettings.radius, objectSettings.radius + (0.9f * objectSettings.radius / (objectSettings.radius + objectSettings.radius)))); noiseFilters = new INoiseFilter[objectSettings.noiseLayers.Length]; for (int i = 0; i < noiseFilters.Length; i++) { noiseFilters[i] = NoiseFilterFactory.CreateNoiseFilter(objectSettings.noiseLayers[i].noiseSettings); } lastObjectSettings = JsonUtility.ToJson(objectSettings); mesh = OctahedronSphereCreator.Create(objectSettings, noiseFilters); GetComponent <MeshFilter>().mesh = mesh; updateColours(); m_TerrainMaterial.SetVector("_elevationMinMax", new Vector4(objectSettings.radius, objectSettings.radius + (0.9f * objectSettings.radius / (objectSettings.radius + objectSettings.radius)))); GetComponent <MeshCollider>().sharedMesh = mesh; }
public void Initiliaze() { Debug.Log("hello"); noiseFilter0 = gameObject.AddComponent <SimpleNoiseFilter>(); noiseFilter1 = gameObject.AddComponent <SimpleNoiseFilter>(); noiseFilter2 = gameObject.AddComponent <RidgidNoiseFilter>(); }
public ShapeGenerator(ShapeSettings settings) { this.settings = settings; this.noiseFilters = new SimpleNoiseFilter[settings.noiseLayers.Length]; for (int i = 0; i < noiseFilters.Length; i++) { noiseFilters[i] = new SimpleNoiseFilter(settings.noiseLayers[i].noiseSettings); } }
public void Initialize() { simpleNoise = (SimpleNoiseFilter)NoiseFilterFactory.CreateNoiseFilter(terrainSettings.noiseLayers[0].noiseSettings); fragmentObjPool = new FragmentObjectPool(material, transform); viewerPosition = viewer.transform.position; visibleFragments = new Dictionary <Vector2, TerrainFragment>(); for (int i = 0; i < transform.childCount; i++) //destroy editor terrain fragments { Destroy(transform.GetChild(i).gameObject); } oldViewerPosition = viewer.transform.position; if (viewerPosition == null) { viewerPosition = viewer.transform.position; } visibleLastframeFragments = new Dictionary <Vector2, TerrainFragment>(); setResolutionLevels(); fragmentVisibleInViewDistance = Mathf.RoundToInt(terrainSettings.maxViewDistance / (float)terrainSettings.fragmentSize); GenerateFragements(); }