Perlin Noise Nedir? (Perlin Noise)

Perlin noise, 1983'te Ken Perlin tarafından film endüstrisi için icat edildi (Tron filmindeki dokular için). random()'dan farklı olarak yumuşak, organik değerler üretir.

💡 Ken Perlin

Ken Perlin bu buluşuyla 1997'de Oscar (Academy Award) kazandı! Bugün neredeyse tüm video oyunları ve CGI filmlerinde kullanılıyor.

random() vs noise() (Comparison)

Özellik random() noise()
Çıktı aralığı 0 - 1 (veya min - max) 0 - 1
Değerler arası ilişki ❌ Bağımsız, sıçramalı ✅ Bağlı, yumuşak geçiş
Görünüm Statik, gürültülü Organik, dalgalı
Kullanım Zar atma, rastgele seçim Arazi, bulut, hareket

noise() Kullanımı (Using Noise)

noise() fonksiyonu bir "zaman" parametresi alır. Aynı zaman değeri her zaman aynı sonucu verir!

// noise() aynı girdiye aynı çıktı verir
noise(0)     // → her zaman aynı değer (örn: 0.47)
noise(0.01)  // → çok yakın bir değer (örn: 0.48)
noise(100)   // → farklı bir değer

// Zamanla değişen değer için
let t = 0;
function draw() {
  let n = noise(t);  // 0-1 arası
  t += 0.01;         // Zamanı ilerlet
}

⚠️ Önemli: Zaman Artışı

t'yi çok hızlı artırırsanız (örn: +1), değerler sıçramalı olur. Yumuşak geçiş için küçük artışlar kullanın (0.01 - 0.05 arası).

Noise ile Hareket (Noise-Based Motion)

Satır Satır Açıklama:

tx, ty
X ve Y için ayrı "zaman" değişkenleri. Farklı başlangıç değerleri ile bağımsız hareket sağlıyoruz.
noise(tx) * width
noise() 0-1 verir, width ile çarpınca 0-width arası olur.
t += 0.01
Küçük artış = yumuşak hareket. 0.1 yaparsanız daha hızlı/keskin olur.

🔬 Deneyin:

  1. Satır 20-21: 0.02 yapın Beklenti: Daha hızlı, ama hala yumuşak hareket
  2. Satır 20-21: 0.001 yapın Beklenti: Çok yavaş, daha sakin hareket

Noise Walker (Perlin Noise Walker)

Random walker'ı noise ile yapalım. Hareket çok daha organik görünecek:

🎮 Noise Kullanım Alanları

  • Arazi oluşturma: Minecraft tarzı dünyalar
  • Bulut/duman: Gerçekçi atmosfer efektleri
  • Karakter hareketi: Doğal sallanma, nefes alma
  • Prosedürel dokular: Ahşap, mermer, su

📝 Bu Bölümün Özeti