Transform matrisleri nedir? Local space ile world space arasında nasıl dönüşüm yapılır?
Cevap
Bir nesnenin konumu, rotasyonu ve ölçeği 4x4'lük bir transform matrisi ile ifade edilir. Bu matris TRS (Translation × Rotation × Scale) çarpımıdır. Homojen koordinatlar (4. bileşen w) sayesinde öteleme de matris çarpımıyla yapılabilir: nokta için w = 1, yön için w = 0 (yönler ötelemeden etkilenmez).
Uzaylar
- Local (object) space: Nesnenin kendi orijinine ve eksenlerine göre koordinatlar.
- World space: Sahnenin global koordinatları.
- Hiyerarşide çocuk nesnenin dünya matrisi:
World = ParentWorld × ChildLocal. - Render'da devamı: World → View (kamera uzayı) → Projection (clip space). Bu zincire MVP matrisi denir.
Unity'de dönüşümler
// Nokta: konum, rotasyon ve ölçek uygulanır
Vector3 worldPos = transform.TransformPoint(new Vector3(0, 1, 2));
Vector3 localPos = transform.InverseTransformPoint(enemy.position);
// Yön: sadece rotasyon (ölçek ve konum yok)
Vector3 worldDir = transform.TransformDirection(Vector3.forward); // = transform.forward
// Vektör: rotasyon + ölçek, konum yok
Vector3 worldVec = transform.TransformVector(Vector3.right);
// Matris ile
Matrix4x4 m = transform.localToWorldMatrix;
Vector3 p = m.MultiplyPoint3x4(localPoint);Pratik örnekler
- Düşman önümde mi, sağımda mı?
InverseTransformPoint(enemy.position)sonucundaz > 0önde,x > 0sağda demektir. - Silah namlusundan mermi: Namlunun yerel ucundaki noktayı dünya konumuna çevirmek.
- Matris çarpım sırası önemlidir: Önce ölçek, sonra rotasyon, sonra öteleme uygulanır; sıra değişirse sonuç değişir.
- Ters matris (inverse) dünya uzayından yerele geri dönmeyi sağlar; ölçeksiz ortogonal rotasyonlarda tersi transpozuna eşittir ve ucuzdur.
İlgili Oyun Matematiği soruları
- Vektörlerde dot product ve cross product oyunlarda ne için kullanılır?
- AABB ve sphere çarpışma testleri matematiksel olarak nasıl yapılır? Hangisi ne zaman tercih edilir?
- Quaternion ile Euler açıları arasındaki fark nedir? Gimbal lock nedir?
- Lerp ve Slerp nedir? Lerp'ü Update içinde yanlış kullanmak neden sorun yaratır?
- Vektör normalize etmek ne demektir? Çapraz harekette neden gereklidir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.