/// <summary> /// Samples volumetric perlin noise /// </summary> public static float PerlinVolume(U.Vector3 point, float perlinScale, int seed) { U.Vector3 _noisePoint = new U.Vector3(seed + point.x * perlinScale, (seed + 5) + point.y * perlinScale, (seed - 7) + point.z * perlinScale); float _ab = Mathf.PerlinNoise(_noisePoint.x, _noisePoint.y); float _bc = Mathf.PerlinNoise(_noisePoint.y, _noisePoint.z); float _ac = Mathf.PerlinNoise(_noisePoint.x, _noisePoint.z); float _ba = Mathf.PerlinNoise(_noisePoint.y, _noisePoint.x); float _cb = Mathf.PerlinNoise(_noisePoint.z, _noisePoint.y); float _ca = Mathf.PerlinNoise(_noisePoint.z, _noisePoint.x); return((_ab + _bc + _ac + _ba + _cb + _ca) / 6f); }
private static float GetPerlinValue(Vector3Int position, float scale, float offset) { return(Mathf.PerlinNoise((position.x + offset) * scale, (position.y + offset) * scale)); }