コード例 #1
0
    void DebugLocation(int x, int y)
    {
        WorldParameters wp          = UniversalWorldParameters;
        float           DistorsionX = Mathf.Lerp(-wp.FrequencyDistortionRange, wp.FrequencyDistortionRange, Mathf.PerlinNoise(x * wp.FrequencyDistortionFreq, y * wp.FrequencyDistortionFreq));
        float           DistorsionY = Mathf.Lerp(-wp.FrequencyDistortionRange, wp.FrequencyDistortionRange, Mathf.PerlinNoise(x * wp.FrequencyDistortionFreq + 90, y * wp.FrequencyDistortionFreq + 50));

        float Distorsion2X = Mathf.Lerp(-wp.FrequencyDistortion2Range, wp.FrequencyDistortion2Range, Mathf.PerlinNoise(x * wp.FrequencyDistortion2Freq + DistorsionX, y * wp.FrequencyDistortion2Freq + DistorsionY));
        float Distorsion2Y = Mathf.Lerp(-wp.FrequencyDistortion2Range, wp.FrequencyDistortion2Range, Mathf.PerlinNoise(x * wp.FrequencyDistortion2Freq + DistorsionX + 90, y * wp.FrequencyDistortion2Freq + DistorsionY + 50));

        float Distorsion3X = Mathf.Lerp(-wp.FrequencyDistortion3Range, wp.FrequencyDistortion3Range, Mathf.PerlinNoise(x * wp.FrequencyDistortion3Freq + Distorsion2X, y * wp.FrequencyDistortion3Freq + Distorsion2Y));
        float Distorsion3Y = Mathf.Lerp(-wp.FrequencyDistortion3Range, wp.FrequencyDistortion3Range, Mathf.PerlinNoise(x * wp.FrequencyDistortion3Freq + Distorsion2X + 90, y * wp.FrequencyDistortion3Freq + Distorsion2Y + 50));

        float Frequency = Mathf.Lerp(wp.Frequency + Distorsion3X, wp.Frequency + Distorsion3Y, Mathf.PerlinNoise(x * wp.FrequencyFreq, y * wp.FrequencyFreq));

        float Amplitude  = Mathf.Lerp(wp.AmplitudeMin, wp.AmplitudeMax, Mathf.PerlinNoise(x * wp.AmplitudeFreq, y * wp.AmplitudeFreq));
        float Lacunarity = Mathf.Lerp(wp.LacunarityMin, wp.LacunarityMax, Mathf.PerlinNoise(x * wp.LacunarityFreq, y * wp.LacunarityFreq));

        float AltitudeErosion = Mathf.Lerp(wp.AltitudeErosionMin, wp.AltitudeErosionMax, Mathf.PerlinNoise(x * wp.AltitudeErosionFreq, y * wp.AltitudeErosionFreq));
        float RidgeErosion    = Mathf.Lerp(wp.RidgeErosionMin, wp.RidgeErosionMax, Mathf.PerlinNoise(x * wp.RidgeErosionFreq, y * wp.RidgeErosionFreq));
        float SlopeErosion    = Mathf.Lerp(wp.SlopeErosionMin, wp.SlopeErosionMax, Mathf.PerlinNoise(x * wp.SlopeErosionFreq, y * wp.SlopeErosionFreq));

        float Gain = Mathf.Lerp(wp.GainMin, wp.GainMax, Mathf.PerlinNoise(x * wp.GainFreq, y * wp.GainFreq));

        float Sharpness = Mathf.Lerp(wp.SharpnessMin, wp.SharpnessMax, Mathf.SmoothStep(0, 1f, Mathf.PerlinNoise(x * wp.SharpnessFreq, y * wp.SharpnessFreq)));

        //float FeatureAmplifier = Mathf.Lerp(0f, 0.09f, Mathf.PerlinNoise(x*0.0043f,y*0.0043f));

        float[] octfeatureamplifer = new float[8];
        for (int i = 0; i < 8; i++)
        {
            octfeatureamplifer[i] = Mathf.Lerp(wp.OctavesParams[i].FeatureAmplifierMin, wp.OctavesParams[i].FeatureAmplifierMax, Mathf.PerlinNoise(x * wp.OctavesParams[i].FeatureAmplifierFreq, y * wp.OctavesParams[i].FeatureAmplifierFreq));
        }

        XnaGeometry.Vector3 n = OTNM.Tools.Accessing.GetUberNoise(new XnaGeometry.Vector2(x * Frequency, y * Frequency), fn, 0, 8, Sharpness, octfeatureamplifer, AltitudeErosion, RidgeErosion, SlopeErosion, Lacunarity, Gain, wp.SlopeGainKeeper) * Amplitude;
        Debug.Log("--DEBUG NOISE PROGRAM--");
        Debug.Log("RESULTS: nx(" + n.x + "), ny(" + n.y + "), nz(" + n.z + ")");
        Debug.Log("SEED: " + 0);
        Debug.Log("OCTAVES: " + 8);
        Debug.Log("TERRAIN SHAPES: altErosion(" + AltitudeErosion + "), ridgeErosion(" + RidgeErosion + "), slopeErosion(" + SlopeErosion + ")");
        Debug.Log("MAIN NOISE PARAMETERS: gain(" + Gain + "), lacunarity(" + Lacunarity + "), ampl(" + Amplitude + ", baseFreq(" + Frequency + ")");
    }