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:
🔬 Deneyin:
-
Satır 20-21:
0.02yapın Beklenti: Daha hızlı, ama hala yumuşak hareket -
Satır 20-21:
0.001yapı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
- Perlin noise: Yumuşak, organik rastgelelik
- noise(t): 0-1 arası değer, aynı t = aynı sonuç
- Zaman artışı: Küçük tut (0.01) yumuşak geçiş için
- Farklı değerler: X ve Y için farklı t başlangıçları kullan
- Ken Perlin: Oscar kazanan algoritma!