簡體   English   中英

佩林噪音不起作用; 返回奇怪的數字

[英]Perlin noise not working; returns weird numbers

我剛開始我的第一個Perlin噪聲項目,但是當我測試它時,它返回了驚人的高數字。
據我了解,它們應該保持在1到-1之間。

同樣,當我將盲法更改為偶數時,它只會返回零。

應該注意的是,我使用Libnoise庫的c#端口。

屏幕截圖

這是我編寫的代碼:

namespace Perlin
{
    public partial class Form1 : Form
    {
        double frequency, lacunarity, persistence;
        int octaveCount, resolutie;

        public Form1()
        {
            InitializeComponent();
            LibNoise.Perlin perlinMap = new LibNoise.Perlin();
            // perlinMap.Frequency =
        }



        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            octaveCount = trackBar1.Value;
            textBox1.Text = octaveCount.ToString();
            //  textBox5.Text = LibNoise.GradientNoiseBasis((double)trackBar1.Value,   (double)trackBar1.Value, (double)trackBar1.Value, 1024,     LibNoise.NoiseQuality.Standard).ToString;
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void trackBar2_Scroll(object sender, EventArgs e)
        {
            persistence = (trackBar2.Value * 5);
            textBox3.Text = persistence.ToString() + "%";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            LibNoise.Perlin perlinMap = new LibNoise.Perlin();
            perlinMap.Lacunarity = lacunarity;
            perlinMap.NoiseQuality = LibNoise.NoiseQuality.Standard;
            perlinMap.OctaveCount = octaveCount;
            perlinMap.Persistence = persistence;
            perlinMap.Seed = 1024;

            textBox12.Text = perlinMap.GetValue(0.23, 0, 1).ToString();
            textBox13.Text = perlinMap.GetValue(1, 1.25, 1).ToString();
            textBox14.Text = perlinMap.GetValue(2, 0, 1.75).ToString();

            textBox15.Text = perlinMap.GetValue(0, 1, 1).ToString();
            textBox16.Text = perlinMap.GetValue(1, 1, 1).ToString();
            textBox17.Text = perlinMap.GetValue(2, 1, 1).ToString();

            textBox18.Text = perlinMap.GetValue(0, 2, 1).ToString();
            textBox19.Text = perlinMap.GetValue(1, 2, 1).ToString();
            textBox20.Text = perlinMap.GetValue(2, 2, 1).ToString();



        }

        private void trackBar3_Scroll(object sender, EventArgs e)
        {
            lacunarity = (trackBar3.Value / 2d + 0.5d);
            textBox7.Text = lacunarity.ToString();
        }

        private void trackBar4_Scroll(object sender, EventArgs e)
        {
            frequency = Math.Pow(2, trackBar4.Value + 1);
            textBox8.Text = frequency.ToString();
        }

        private void trackBar5_Scroll(object sender, EventArgs e)
        {
            frequency = Math.Pow(2, trackBar5.Value + 4);
            textBox10.Text = frequency.ToString();
        }
    }
}

任何幫助是極大的贊賞!

我發現很討厭,持久性應該是0到1之間的值,而不是5到50之間的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM