Holodepth • ByteOmi Köprü • Temel Matematik
Vector Mantığı
Vektörler; konum, yön, hız ve kuvvet gibi kavramları aynı matematik altında birleştirir. 3D web’de “bir şeyin nereye baktığı” veya “ne kadar hızlı gittiği” çoğu zaman Vector3 ile ifade edilir. Bu sayfada konum–yön ayrımını, normalize sezgisini, toplama/çıkarma ile hareket mantığını ve dot product ile açı/aydınlatma ilişkisini kısa ama sağlam bir çekirdeğe oturtuyoruz.
Kaynak metin: byteomi.com • İlgili köprü: Koordinat Sistemleri
Canlı demo: “Vector Field & Targeting”
Hedef küresini sürükle: B − A vektörü (yer değiştirme) anında yön değiştirir. “Normalize” açıldığında kırmızı ok yönünü korur ama boyu 1’e sabitlenir. Aşağıdaki slider ile magnitude (şiddet) kontrol edilir ve karakterin hedefe gidiş hızı değişir. Sağ tarafta dot product, ışık yönü ile yüzey normalinin açısına göre duvarı aydınlatır.
Hero demo
Mavi: A (konum) • Yeşil: B (konum) • Kırmızı: B−A (yön/yer değiştirme). Dot: Normal • IşıkYönü → parlaklık.
İpucu: Sabit hız istiyorsan önce (B−A)’yı normalize et, sonra magnitude ile çarp.
Konum vs yön
Aynı (x,y,z) sayıları hem “nokta” (konum) hem de “ok” (yön) gibi okunabilir. Konum, orijine göre “nerede?” sorusunu; yön ise “hangi tarafa ne kadar?” sorusunu cevaplar. İki konum arasındaki fark B − A artık bir konum değil, yer değiştirme (displacement) vektörüdür.
Magnitude & normalize
Magnitude, vektörün şiddetidir. Normalizasyon ise yönü koruyup boyu 1 yapar. Sabit hız için önce yönü normalize et, sonra magnitude (hız katsayısı) ile çarp. Dot product gibi açı sezgisi isteyen işlemlerde normalize edilmiş vektörler sınırları (1/0/−1) daha anlaşılır kılar.
Toplama & çıkarma
Toplama çoğu zaman harekettir: position += velocity * dt. Çıkarma ise yön üretir:
dir = (B − A). Aynı vektör hem yön hem mesafe taşır: normalize ile yönü alır, length ile
mesafeyi okursun.
Dot product: açı ve aydınlatma
Dot product “ne kadar aynı yöne bakıyoruz?” sorusudur. Normalize iki vektör için dot, \(cos(\theta)\)
gibi okunur: 1 aynı yön, 0 dik, −1 zıt. Lambert sezgisi: brightness = max(0, normal • lightDir).