Holodepth • ByteOmi Köprü • Koordinat Sistemleri
Kökenlerin Savaşı
Ekran koordinatları (DOM) ile dünya koordinatları (3D) aynı dili konuşmaz. Sol üst köşeyle başlayan “piksel dünyası”, merkez + derinlikle başlayan “uzay dünyası” ile çarpışır. Bu sayfa, eksen yönü, ölçek, kamera ve hiyerarşi (local/world) farkını tek bir zihinsel modelde birleştirir.
Kaynak metin: byteomi.com • İlgili köprü: Canvas vs WebGL
Ekran koordinatları vs dünya koordinatları
DOM dünyasında köken genellikle sol üst kabul edilir; X sağa gider, Y aşağı artar ve birim piksel tabanlıdır. 3D dünyada ise “sol üst” hissi yoktur: merkez + derinlik (Z) ile bir uzay kurarsın ve kamera her şeyi yeniden anlamlandırır.
İlk tuzak: Y ekseni yönü. 2D’de “aşağı” çoğu zaman +Y; 3D’de ise +Y genellikle yukarı. İkinci tuzak: ölçek. “1 birim ne?” sorusunu erken belirlemek near/far, hız ve ışık ayarlarını tutarlı kılar.
Right-hand rule & derinlik
Three.js sağ el kuralını kullanır: baş parmak X, işaret parmağı Y, orta parmak Z yön hissini sabitler. Near/far aralığını gereksiz büyütmek derinlik hassasiyetini düşürür ve z-fighting gibi titremelere yol açabilir.
Local vs world (parent/child)
Bir nesnenin konumu mutlak değildir; çoğu zaman parent uzayında anlam kazanır. Child local konumunu korurken parent hareket ederse, child’ın world konumu değişir. Bu, scene graph’ın temelidir.
NDC ve mouse picking
Ekrandaki tıklama (clientX/clientY) dünya konumu değildir. Genelde screen → NDC (−1..+1) dönüşümü yapılır, sonra kameradan ray atılıp world space’de kesişim aranır. Y ekseninin NDC’de ters çevrilmesi ve canvas’ın sayfa içindeki konumunun hesaba katılması kritik detaylardır.