Three.js · Profiling · Fizik zamanı
Fizik dünyasında FPS: görsel akıcılık ve fiziksel kararlılık
FPS çoğu zaman yalnızca «ekran kaç kare çiziyor?» sanılır; fizik entegre sistemde ise iki ayrı saat vardır: biri görüntüleme ritmini, diğeri simülasyon adımını ölçer. İkisi uyumsuzlandığında titreme veya tünelleme gibi imzalar ortaya çıkar — bunların tel üzerinden okunuşu Fizik debug sayfasında, köprü sırası ise Senkronizasyon köprüsü başlığında ele alınır.
Bu sayfa, iki saatin nasıl ayrıştığını ve üretimde hangi ölçümlerle yönetileceğini sabitler; çarpışma boru hattının kendisi için Çarpışma mantığı sayfasına başvurun.
İki saat: render FPS ve fizik frekansı
Render FPS
Ekranın saniyede kaç kez yenilendiği, tipik olarak requestAnimationFrame döngüsüyle ölçülür; GPU yükü, draw çağrıları ve piksel maliyeti burada belirleyicidir. Oyuncu «akıcılığı» bu saatten okur.
Fizik adımı (Hz)
Simülasyon motorunun saniyede kaç kez «dünya durumunu» ilerlettiği ayrı bir frekanstır; 60 Hz yaygın bir varsayılandır fakat zorunlu değildir. Bu saat, kuvvet, sürtünme ve temas çözümünün ne sıklıkta yeniden hesaplandığını belirler.
İki saat ayrıştığında, aynı karede çok fazla veya çok az fizik adımı çalışmış olabilirsiniz; bu da jittering veya tunneling imzalarını tetikler. Soru «FPS düştü mü?» değil, «fizik Δt ile render Δt aynı hikâyeyi mi anlatıyor?» olmalıdır.
Sabit zaman adımı (fixed time step)
Değişken kare süresi riski
Fizik motorları, iki kare arasındaki gerçek sürenin (Δt) oynak olmasından hoşlanmaz: FPS 60’tan 30’a düştüğünde aynı görsel karede daha büyük bir zaman sıçaması oluşur; hızlı mermi gibi ince engellerde bu, kesişimin bir karede hiç görülmemesine (tunneling) zemin hazırlar.
Sabit adım politikası
Çözüm, simülasyonu çoğu zaman sabit birimlerle ilerletmektir: örneğin saniyede 60 kez, yani yaklaşık 16.67 ms’lik iç adımlar. Görsel kare süresi uzadığında aynı render aralığında birden fazla fizik adımı birikebilir; kısaldığında ise biriktirici (accumulator) ve interpolasyon stratejileri devreye girer — ayrıntı için Performans ve güncelleme döngüsü rehberine bakın.
Determinizm
Sabit adım, aynı girdilerle aynı sırayı tekrarlanabilir kılar: kayıt–oynatım, ağ senkronu veya hata ayıklama için «aynı top aynı yere düşer» beklentisi burada anlam kazanır. Determinizm tek başına kullanıcı deneyimi değildir; fakat regresyon testi ve fizik tabanlı oyun kuralları için güvenilirlik sağlar.
Performans analizi: fizik profili
Physics süresi (ms)
Bir fizik adımının toplam süresini ölçün. 16.67 ms bütçe ile düşünülürse, fizik tek başına bu eşiği aşarsa kare süresi zorlanır — görüntü hâlâ «60 FPS» sayacı gösterse bile simülasyon geride kalabilir. Ölçümü ana döngüden ayırmak için ayrı zaman damgası veya profil aracı kullanın.
Broad-phase vs. narrow-phase
Darboğazın nerede olduğunu ayırt edin: aday çift sayısı şişiyorsa geniş faz, az sayıda çiftte bile süre uzuyorsa dar faz veya karmaşık şekil şüphelidir. Kavramsal hat Çarpışma mantığı · iki fazlı süzgeç bölümünde özetlenir.
Aktif gövde sayısı
Sahada kaç gövdenin o an «uyanık» hesaplandığını izleyin. Uyku (sleep) durumuna geçen dinamikler, çoğu motorda minimal maliyetle tutulur; ani uyanma dalgaları ise patlama veya depo sahnesi gibi senaryolarda FPS düşüşü olarak geri döner.
FPS kaybını azaltma stratejileri
Uyku modu (sleeping)
Yere düşüp duran kutu, sürtünme ile enerjisini kaybettikten sonra tekrar kuvvet almadıkça gereksiz yere çözülmemelidir. Uyku, gövdeyi adım maliyetinden çıkarır; yanlış eşikte ise erken uyuma veya geç uyanma oyun hissini bozar — bu yüzden eşikleri tasarımla birlikte kalibre edin.
Substepping
Çok hızlı nesneler için tek render karesinde fizik motorunu iki–üç kez çalıştırmak, tünelleme riskini düşürürken görüntüleme hızını sabit tutmanıza yardım eder. Maliyet doğrudan adım sayısıyla çarpılır; bu yüzden yalnızca gereken bölgelerde veya geçici «tehlike» pencerelerinde agresif olunur.
Web Worker
Ağır simülasyonu ana iş parçacığından ayırmak, UI ve giriş işleme gecikmesini azaltır; fakat dünya durumunu iletmek için serileştirme ve senkron sınırı vardır. Her şeyi «iş parçacığına at, bitsin» diye okumak kolaydır; köprü maliyeti unutulmamalıdır.
Holodepth teknik notu
Ölçüm yapmadan optimizasyon yapmayın: önce fizik ms, sonra aktif gövde, sonra broad/narrow ayrımı — aksi halde «substep artırdım, FPS düzeldi» gibi yanlış pozitiflerle zaman kaybedersiniz.