Bir mesafe alanı ( veya mesafe dönüşümü veya mesafe haritası ), ızgaradaki her hücrenin o hücreden başka bir özelliğe sahip bir hücreye olan en kısa mesafeyi temsil ettiği ızgaralı bir yapıdır . Çoğu zaman bu "diğer özellik", bir oyuncunun geçemediği bir duvar veya bir örgünün yüzeyi gibi sınır tipi bir hücredir.
Mesafe alanlarının uygulanabilirliği çoktur. Örneğin, hareket rehberliğini uygulamak için nasıl kullanılabileceklerini hayal edebilirsiniz (tehlikeli veya istenen nesnelere mesafe haritaları oluşturarak ve onlar tarafından hareket kararlarını ağırlıklandırarak).
Ancak, özellikle çarpışma hakkında sorular sordunuz. İki hareketli nesne arasında çarpışma tespiti yapmak için mesafe alanlarının kullanılması, alanın kapsamı büyüdükçe mesafe alanlarının yeniden oluşturulması çok yavaş olabileceğinden (özellikle 3D'de, üretim süresini iyileştirme yöntemleri bir araştırma alanı olmasına rağmen) hızla verimsiz hale gelebilir .
Bu nedenle, mesafe alanı çarpışması esas olarak dinamik bir nesnenin statik olanla çarpışmasını tespit etmek için kullanılır. En sık olarak, sahnede diğer sabit nesnelerle bez (veya diğer deforme olabilir) nesnelerin çarpışmasını tespit etmek için bunu gördüm .
Kabaca, bu, bir işaretin (genellikle negatif) örgünün içindeki bir hücreyi , diğeri (açıkçası genellikle pozitif) örgünün dışındaki bir hücreyi temsil ettiği statik nesne için işaretli bir mesafe alanı kullanılarak gerçekleştirilir . Kumaş örgünün parçacıkları, statik örgünün yerel boşluğuna dönüştürülebilir ve belirli bir kumaş simülasyon aşaması sırasında bir parçacığın "önce" ve "sonra" konumları, işaretin değişip değişmediğini (ve böylece bir çarpışma meydana geldi). Bu, örneğin, 2003'teki kumaş simülasyonu makalesinde tartışılan yöntemdir .
Tek çarpışma algılama yönteminiz olarak mesafe alanlarını kullanmanızı önermem. İyi oldukları şey için oldukça verimli olabilirler, ancak her şeyde iyi değildirler. Etkin çarpışma tespiti elde etmenin en iyi yolu, hiyerarşiyi aşağı doğru hareket ettirdikçe artan bir hassasiyetle, hiyerarşik olarak birden çok yöntem kullanmaktır.