Ana içeriğe geç
Programlama

Globus çokgenleri üçgenlere bölen earstrip kütüphanesini tanıttı

Öne çıkanlar

  • Globus, 3,74 milyon harita çokgenini 489 milisaniyede üçgenlere ayıran earstrip kütüphanesini ISC lisansıyla yayımladı.
  • Kütüphane C++ ortamında earcut.hpp'den yüzde 14, tarayıcı tarafında ise earcut.js'den 2,1 kata kadar daha hızlı çalışıyor.
  • Dallanmasız tarama ve kovalara bölme optimizasyonları sayesinde Delaunay yöntemine göre 6 kat performans artışı sağlandı.

Harita motoru geliştiricisi Globus, harita çokgenlerini üçgenlere ayıran yeni açık kaynak kütüphanesi earstrip'i yayımladı. Harita üzerindeki bina, park ve yol gibi çokgenlerin GPU tarafından ekrana çizilebilmesi için üçgenlere dönüştürülmesi gerekiyor. Şirket, önceki sürümlerde 3,74 milyon çokgeni Delaunay yöntemiyle 2,93 saniyede işlerken kulak kesme algoritmasını yeniden ele alarak bu süreyi tek çekirdekte 489 milisaniyeye indirdi. ISC lisansıyla yayımlanan kütüphane, C++ başlık dosyası ve WebAssembly npm paketi olarak sunuluyor.

Geliştirme sürecinde çokgenlerin içbükey köşeleri listelendi, bu köşeler uzamsal kovalara ayrıldı ve dallanmasız bit düzeyinde taramalar uygulandı. Konveks çokgenler için özel kestirme yollar tanımlanırken üçgen şeritleri kullanılarak dizin verisi boyutu neredeyse yarı yarıya azaltıldı. Çözülemeyen bozuk kenarlar veya binden fazla delik içeren karmaşık geometriler için ise kütüphane otomatik olarak kısıtlı Delaunay algoritmasına geçiş yapıyor.

Performans ölçümlerinde earstrip, C++ ortamında sektör standardı earcut.hpp kütüphanesinden yüzde 14 daha hızlı sonuç verdi. WebAssembly ve tarayıcı ortamlarında ise earcut.js sürümüne kıyasla 1,4 ila 2,1 kat arasında hız artışı sağlandı. Doğrudan bellek erişimi sunan fonksiyonlar, WebGL ve WebGPU iş hatlarında veri kopyalama maliyetlerini ortadan kaldırarak performansı artırıyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.