[英]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.