holodepth

Three.js · Etkileşim · TrackballControls

TrackballControls: eksensiz ve serbest hareketin matematiği

İsim, masaüstündeki fiziksel iztopu (trackball) farelerinden gelir: parmaklarınızla hayali büyük bir küreyi çeviriyormuşsunuz hissi. Three.js’teki bu kontrol, OrbitControls’ün sık kullandığı kutup ve «yukarı» ekseni disiplinine aynı derecede bağlı kalmak zorunda değildir; kullanıcı nesneyi baş üstü, çapraz veya sürekli yuvarlanarak inceleyebilir.

Sonuçta ortaya çıkan şey, dünya uzayında sabitlenmiş bir «kuzey»den ziyade anlık bakış çerçevesine göre tanımlanan dönüşlerdir. Bu özgürlük, moleküler modeller veya uzay düzenekleri gibi «aşağı-yukarı»nın doğal olmadığı bağlamlarda güçlüdür; vitrin veya şehir maketi gibi zeminin semantik olduğu deneyimlerde ise yön duygusu zayıflayabilir. Soyut çerçeve için Kontrol mantığı, kilitli yörünge davranışı için OrbitControls sayfasına bakın.

Aşağıda önce eksensiz dönüş ve sanal küre modeli, ardından ivme ve damping karakteri, senaryolar ve Orbit ile karşılaştırma yer alır.

Eksen bağımsız dönüş ve sanal küre

OrbitControls, kutupsal parametreler ve polar açı kısıtlarıyla kamerayı sıklıkla «cennette takılır»: kullanıcı dikeyde sonuna kadar iter ama bakış vektörü dünya eksenine göre yumuşak bir şekilde kilitleme hissine yaklaşır. TrackballControls’te böyle bir tavan yoktur; fareyi çembere benzer yörüngede sürdüğünüzde dönüş, seçilen referansa göre üç eksende de sürekli birikebilir — nesneyi ters çevirmek teknik olarak mümkündür ve bazı domain’lerde istenen şey budur.

Serbest yuvarlanma ve roll serbestisi

Sürükleme girdisi, kameranın üst–sağ–ön eksenlerine projeksiyon yapmak yerine, çoğu kurulumda quaternion tabanlı küçük dönüşlerin bileşkesine dönüşür. Bu yüzden «bir tur attım mı?» sorusunun yanıtı kullanıcı için bulanıklaşabilir; oyun benzeri bir zeminde rahatsız edici olan roll serbestisi, atom kümesini döndürürken ise doğrudan inceleme verimliliği sağlar.

Sanal küre (arcball) düşüncesi

Sezgisel model şudur: ekranın arkasında izleyiciye dönük dev bir küre vardır; fareyi bastığınızda kürenin yüzeyinde hayali bir nokta seçilir ve sürüklenince küre o eksende döner. Matematiksel olarak tipik arcball uygulamalarında iki ekran konumu küre yüzeyine yükseltilir; bu iki nokta ve kürenin merkezi bir düzlem tanımlar ve dönüş ekseni, vektörel çarpım ile çıkar — böylece hareket, dünya «yukarı»sına göre önceden kırpılmadan üretilir.

  • Düzgün parametrizasyon: Küresel uzaklık sabit tutulduğunda saf dönüşler daha stabildır; zoom ayrı kanalla gelir.
  • Yön kayması riski: Uzun oturumlarda kullanıcı zeminin neresinin ön, neresi arka olduğunu unutabilir; bu yüzden arayüzde sabit bir eksen göstergesi veya kısa bir yardım metni düşünmek üretim kalitesini yükseltir.

Momentum, damping ve «daha özgür» his

TrackballControls’ü ayıran başlıca yapısal farklardan biri, hareketin yalnızca parmak basılıyken değil, bırakıldıktan sonra da kısa süre açısal atalet taşımasıdır. Bu, kullanıcıya nesnenin fiziksel bir kütleymiş gibi döndüğü izlenimini verir; aynı zamanda küçük titreşimleri bile büyütebilir — damping katsayısı burada «kalite ayarı»dır, süs değil.

Dinamik damping

Çoğu projede yumuşatma bayrağı açık tutulur ve animasyon döngüsünde kontrolün update() çağrısı kaçırılmaz; aksi halde ani duruşlar veya takılı hisler oluşur. Hızlı bir flick sonrası süzülme, profesyonel CAD yazılımlarındaki iztopu davranışını hatırlatır — kullanıcıya «elimden çıktı ama hâlâ hâkimim» mesajı verilir.

Zoom saldırganlığı ve içeri gömülme

Yakınlaştırma eğrileri sıklıkla daha agresiftir: kullanıcı ince detayı yakalamak için modele göre daha yakına gidebilir. Bu esneklik ölçüm yapmayı kolaylaştırırken, perspektif projeksiyonda iç yüzeylerin içinden bakış riskini artırır. Üretimde yakın mesafe tavanı, yüzey şeffaflığı veya «yakınsa uyar» geri bildirimi düşünün.

Pan: göreli çerçeveyle kaydırma

Kaydırma işlemi, zemine kilitlenmiş sabit bir eksene göre değil, o anda geçerli olan bakış düzlemi ve yan vektörleri üzerinden tanımlanır. Bu, karmaşık montajların içini dolaşırken «yan tarafa süzülme» hissini akışkan yapar; kullanıcı dönmüş olsa bile pan, ekranın sağı–solu ile uyumlu kalma eğilimindedir — ki bu da teknik incelemede iş yapan bir özelliktir.

Kullanım senaryoları: ne zaman trackball?

Serbestlik her zaman iyidir demek yanlıştır: kontrol «kolay» olduğu için değil, problem uzayı gereği trackball seçilir. Aşağıdaki alanlarda kutup kısıtlı yörünge genelde mühendislik engeli oluşturur.

  • Bilimsel görselleştirme: Protein zinciri, kristal kafes veya graf tabanlı veri yerleşiminde «yerçekimi yönü» anlamsızdır; araştırmacı yapıyı tüm omurgalarından görmek ister.
  • Mühendislik ve bakım sahneleri: Karmaşık manifoldlar, boru demetleri veya araç gövdelerinde iç bölgelere süzülmek için tam roll ve serbest pan sıklıkla şarttır.
  • Uzay ve astro görselleştirme: Küresel olmayan kütle dağılımları veya yıldız kataloglarında «üst» görecelidir; sabit horizon kullanıcıyı yanlış sezgiye iter.
  • Tıbbi ve hacim verisi: İzotropik bir hacim örneğinin iç yüzeyleri incelenirken eksen kilidi, anatomiyi yanlış yönlendirebilir; trackball + kesit düzlemi birlikte sık kombinasyondur.

Bu senaryolarda bile kullanıcıyı terk etmeyin: küçük bir eksen yardımı (mini axis gizmo), odak geri çağırma veya kısıtlı «ön görünüm» kısayolları oryantasyon kaybını tolere edilebilir kılar.

OrbitControls ile hızlı karşılaştırma ve seçim

İki kontrol aynı hedefi (Three.js Camera) besler; fakat kullanıcıya sundukları uzamsal sözleşme farklıdır. Tablo birinci yaklaşım olarak okunmalı; gerçek projede prototipte her iki kontrolü beş dakika yan yana denemek en doğru kararı verir.

Özellik OrbitControls TrackballControls
Kutup / dik bakış sınırı Tipik olarak minPolarAngle / maxPolarAngle ile var; tam dik ve takla engellenir. Yok; 360° serbest yuvarlanma ve sürekli roll mümkün.
Yön ve zemin hissi Güçlü; «yukarı» ve gökyüzü–zemin çoğu kurulumda korunur. Zayıflar; kullanıcı modeli ters çevirebilir, sahne üzerinde kaybolma riski artar.
Öğrenme eğrisi Düşük; vitrin ve mağaza görselleri için doğal. Daha dik; teknik kullanıcılar ve bilimsel araçlar için uygun.
Hareket karakteri Daha kontrollü ve öngörülü yörünge; damping isteğe bağlı. Genelde daha akışkan; momentum ve damping karakterin parçası.
Zoom davranışı Ölçülü; mesafe ve zoom kısıtlarıyla birlikte sık kullanılır. Sıklıkla daha agresif; detaya yaklaşma kolay, iç gömülme riski yüksek.

Holodepth pratiği: ürün tanıtımı ve tüketici odaklı vitrin için önce OrbitControls düşünün — nesneyi kadrajda tutmak ve yön duygusunu korumak satış ve erişilebilirlik açısından bedelleri düşürür. Kullanıcıdan karmaşık geometriyi veya yoğun veriyi çözmesini bekliyorsanız trackball özgürlüğünü haklı çıkarır; ancak özgürlük beraberinde oryantasyon kaybını getirir.

  • Reset view: Varsayılan kamera ve hedefe tek tuşla dönüş, panik anında güven verir; klavye kısayolu eklemek iyi bir üretim standardıdır.
  • Hibrit strateji: Bazı uygulamalar varsayılanda yörüngeyi açar, «uzman modu»nda trackball’a geçer — böylece geniş kitle ile güç kullanıcı ayrımı tek kod tabanında kalır.

Holodepth teknik notu

Trackball ile uzun oturumlarda kullanıcıların bir kısmı baş dönmesi bildirir; bunu hafifletmek için dönüş hızını düşük başlatıp ayarlardan yükseltilebilir yapın. Mobil cihazda tek parmak döndürme ile iki parmak pan/zoom’un çakışmasını test edin — masaüstündeki akışkanlık her zaman taşınmaz. Son olarak, momentum açıkken sürekli mikro titreşim yaratan masa yüzeyleri için düşük geçiren bir ölü bölge veya minimum hız eşiği düşünün.