1D, 2D ve 3D Noise (Noise Dimensions)
Perlin noise farklı boyutlarda kullanılabilir. Her boyut farklı kullanım alanlarına sahip:
Noise Artış Değeri (Noise Step / Increment)
Noise fonksiyonuna verdiğimiz değeri ne kadar hızlı artırdığımız, çıktının yumuşaklığını belirler:
💡 Altın Kural
Artış değerini çok büyük yaparsanız (1.0 gibi), noise neredeyse random() gibi davranır. Yumuşak geçişler için 0.01-0.05 arası değerler kullanın.
2D Noise: Arazi ve Doku (2D Noise Landscape)
noise(x, y) ile 2 boyutlu deseni oluşturabiliriz.
Her piksel için (x, y) konumuna göre gri değeri hesaplıyoruz:
2D Noise Nasıl Çalışır:
🔬 Deneyin:
-
Satır 11: Ölçeği
0.05yapın Beklenti: Daha büyük, daha az detaylı desenler -
Satır 11: Ölçeği
0.005yapın Beklenti: Daha küçük, daha detaylı desenler
Animasyonlu 2D Noise (Animated Noise)
3. parametre olarak zamanı ekleyerek animasyonlu doku oluşturabiliriz:
noise(x, y, t)
💡 Performans İpucu
Her pikseli her frame hesaplamak yavaş olabilir. Daha düşük çözünürlük
(pixelDensity(1)) veya daha büyük bloklar kullanabilirsiniz.
Arazi Oluşturma (Terrain Generation)
2D noise ile yükseklik haritası oluşturup, 3D arazi çizebiliriz:
noiseDetail() - Detay Seviyesi (Noise Detail)
noiseDetail(octaves, falloff) ile noise'un karmaşıklığını ayarlayabiliriz:
// Varsayılan
noiseDetail(4, 0.5);
// Daha detaylı (daha fazla oktav)
noiseDetail(8, 0.5);
// Daha yumuşak (düşük falloff)
noiseDetail(4, 0.3);
Noise Kullanım Alanları
📝 Bu Bölümün Özeti
- noise(t): 1D noise - hareket, salınım
- noise(x, y): 2D noise - dokular, araziler
- noise(x, y, z): 3D noise - animasyonlu dokular
- noiseDetail(octaves, falloff): Detay seviyesi ayarı
- Ölçekleme: Koordinatları küçült (örn: × 0.01)
🚀 Sonraki Adım: Vektörler
Rastgelelik bölümünü tamamladınız! Sonraki bölümde (Vectors) hareketin matematiksel temellerini öğreneceksiniz: konum, hız, ivme ve vektör matematiği.