コード例 #1
0
        /// <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);
        }
コード例 #2
0
 private static float GetPerlinValue(Vector3Int position, float scale, float offset)
 {
     return(Mathf.PerlinNoise((position.x + offset) * scale, (position.y + offset) * scale));
 }