public void Generate() { DestroyImmediate(Preview); Preview = new Texture2D(Resolution, Resolution, TextureFormat.RGB24, mipmap: false, linear: true); var pixels = Preview.GetPixels32(); var simplexNoise = new BO.Rendering.Utilities.OpenSimplexNoise(); for (var x = 0; x < Resolution; x++) { for (var y = 0; y < Resolution; y++) { var worldPosition = transform.position + new Vector3(x, 0, y); var perlinValue = (float)simplexNoise.Evaluate(worldPosition.x * PerlinCoordinateScale, worldPosition.z * PerlinCoordinateScale); pixels[y * Resolution + x] = Color.white * Mathf.Pow(perlinValue, 2); } } Preview.SetPixels32(pixels); Preview.Apply(); GetComponent <MeshRenderer>().sharedMaterial.mainTexture = Preview; }