public void Initialize() { usingLegacyUVType = uvType == UVType.Legacy || uvType == UVType.LegacyContinuous; mainCamera = Camera.main; mainCameraTr = mainCamera.transform; comparer = new SortingClass(); quadMesh = ((GameObject)Resources.Load("planeMesh")).GetComponent <MeshFilter>().sharedMesh; quadMeshVertices = quadMesh.vertices; if (!floatingOrigin) { floatingOrigin = GetComponent <FloatingOrigin>(); if (floatingOrigin) { Debug.LogError("Floating Origin found but not defined on planet! Make sure to define floating origin on each planet."); } } heightInv = 1f / heightScale; rotation = transform.rotation.ToQuaterniond(); oldPlanetPosition = transform.position; oldPlanetRotation = rotation; if (useBiomeMap) { biomeMap = new Heightmap(biomeMapTexture, true); } if (mode == Mode.Noise || mode == Mode.Hybrid) //Deserializing Noise Module { MemoryStream stream = new MemoryStream(noiseSerialized.bytes); noise = Utils.DeserializeModule(stream); } quadGO = ((GameObject)Resources.Load("plane")); //Original renderQuad if (generateDetails && grassMaterial) { ((GameObject)Resources.Load("Grass")).GetComponent <MeshRenderer>().material = grassMaterial; } if (mode == Mode.Heightmap || mode == Mode.Hybrid) { heightmap = new Heightmap(heightmapSizeX, heightmapSizeY, heightmap16bit, useBicubicInterpolation, heightmapTextAsset); } radiusMaxSqr = radius * (heightInv + 1) / heightInv; //Squared values so sqrt is not required radiusMaxSqr *= radiusMaxSqr; radiusSqr = radius * radius; rqdtSqr = recomputeQuadDistancesThreshold * recomputeQuadDistancesThreshold; scaledSpaceDisSqr = scaledSpaceDistance * scaledSpaceDistance; dtDisSqr = detailDistance * detailDistance; }
/// <summary> /// Generates grayscale previw of noise module /// </summary> public static Heightmap GeneratePreviewHeightmap(Module module, int resX = 256, int resY = 256) { Heightmap preview = new Heightmap(resX, resY, false, false); for (int x = 0; x < resX; x++) { for (int y = 0; y < resY; y++) { float v = (module.GetNoise(x / (float)resX, y / (float)resY, 0f) + 1f) / 2f; v = Mathf.Clamp01(v); preview.SetPixel(x, y, v); } } return(preview); }
public void Reset() { noise = null; heightmap = null; }