2 puan yazan GN⁺ 2024-02-29 | 1 yorum | WhatsApp'ta paylaş

PGA’yı test etmek

  • PGA (projektif geometrik cebir), bilgisayar grafikleri ve makine öğrenimi topluluklarında dikkat çekiyor.
  • Mevcut 3D grafiklerde PGA’nın kullanımı sınırlıydı; ancak 'Look, Ma, No Matrices!' projesi, PGA’yı modern bir 3D motora entegre ederek kullanım alanını genişletmeyi amaçlıyor.
  • Bu proje, mevcut teknolojileri değiştirmekten ziyade, PGA’nın potansiyelini ortaya çıkarmak için daha temel bir yeniden değerlendirme gerektiğini vurguluyor.

Giriş

  • Bilgisayar grafiklerinde matrisler çok önemli bir rol oynar.
  • Günümüz GPU’ları programlanabilir ve sabit işlevli ardışık düzene bağlı olmadığından, PGA kullanımı için uygun koşullar oluşmuş durumda.
  • Matrisler doğrusal dönüşümleri ifade etmek için uygundur; ancak PGA motorları, Öklidyen hareketleri daha düşük hesaplama ve bellek maliyetiyle kodlayabilir.

FPGA: Hızlı PGA!

  • PGA’nın temel işleçleri ile CPU ve GPU için gerekli teknikler ayrıntılı olarak açıklanıyor.
  • PGA’nın temel vektörleri ve bellek yerleşimi, grafik verilerini işlerken dönüşümleri en aza indirmek için seçilmiştir.
  • PGA’nın veri yapıları, yerleşik tipler kullanılarak işlemleri koruyan basit shader yapılarına çevrilir.

Geometrik işleçleri elde etmek

  • PGA’da dönüşümlerin bileşimi, matris çarpımından daha verimli olan geometrik çarpımı kullanır.
  • Noktaları ve yönleri dönüştürmek için gereken sandwich işleci, PGA’da önemli bir rol oynar.
  • PGA motorlarının normalizasyonu ve karekök işlemleri, verimli şekilde uygulanabilen önemli işlemlerdir.

Matrislerin ötesine geçmek

  • Mevcut içerikle etkileşim, matrislerin PGA eşdeğerlerine dönüştürülmesini gerektirir.
  • PGA motorları, 4x4 matrislerin aksine ölçeklendirme içermez; bu nedenle uniform ölçeklendirme, her öğenin toplam ölçeğinin ebeveynin ölçeğiyle çarpılması izlenerek yönetilir.
  • Uniform olmayan ölçeklendirme daha karmaşıktır, ancak çoğu durumda yalnızca yaprak düğümlerde uygulanır.

Forward rendering

  • Forward renderer, mesh geometrisini dönüştürür ve her üçgenin hangi pikselleri kapladığını belirler.
  • Model, view ve projection matrisleri PGA motorlarıyla değiştirilir; ayrıca vertex shader içinde tangent space normal mapping için gereken dönüşümler gerçekleştirilir.
  • PGA yaklaşımı, mesh vertex’lerini 4x4 matris kullanımına neredeyse eşdeğer bir hesaplama maliyetiyle dönüştürebildiğini gösterir.

GN⁺ görüşü

  • 'Look, Ma, No Matrices!' projesi, mevcut matris tabanlı rendering yaklaşımına ilgi çekici bir alternatif sunuyor. PGA kullanarak 3D grafiklerde dönüşümleri işleyen bu yeni yaklaşım, bilgisayar grafikleri alanında yenilik yaratabilir.
  • Bu teknoloji, mevcut matris işlemlerine alışkın geliştiriciler için yeni bir öğrenme eğrisi gerektirebilir ve bu da ilk benimseme aşamasında bir engel olabilir.
  • Benzer işlevler sunan sektördeki diğer proje veya ürünler arasında OpenGL ve DirectX gibi grafik API’leri bulunur; ancak bunlar geleneksel matris tabanlı yaklaşımı kullanır.
  • PGA’yı benimserken mevcut kod tabanıyla uyumluluk, performans optimizasyonu ve geliştirici eğitimi gibi unsurlar dikkate alınmalıdır.
  • PGA seçiminin sağlayabileceği faydalar, bellek ve hesaplama verimliliğindeki artıştır; ancak bu, mevcut sistemlerle entegrasyona ve geliştiricinin PGA konusundaki bilgisine bağlı olarak değişebilir.

1 yorum

 
GN⁺ 2024-02-29
Hacker News görüşleri
  • Freya Holmér'in Geometric Algebra'ya giriş videosu öneriliyor

    • 3D grafikler, özellikle spline/Bezier eğrileriyle ilgilenenler için faydalı
    • Clifford Algebra yaklaşımı lineer cebirden daha sezgisel hissettiriyor
    • Freya Holmér'in video bağlantısı
  • Geometric Algebra'ya dair bir açıklama

    • Geometric Algebra, polinom çarpımına benzer; ancak çarpma sırası önemlidir ve alışılmadık bir çarpım tablosuna sahiptir (i*i = 1, i*j = -j*i)
    • İki vektörün geometrik çarpımı, nokta çarpımı (dot product) ve çapraz çarpımı (cross product) içerir, ancak daha yüksek boyutlara da genellenebilir
    • Geometric Algebra'da buna wedge product denir
    • Bu kavram anlaşılırsa dönüş formüllerini türetmek gibi geometrik problemleri çözmek kolaylaşır
  • Dönüş interpolasyonu için çeşitli yaklaşımlar

    • Geometric Algebra, quaternion ve matris interpolasyonu gibi çeşitli yöntemler var, ancak optimizasyondan sonra kodların çoğu birbirine benziyor
    • Geometric Algebra en tutarlı ve en güçlü yaklaşım gibi görünüyor, ancak ilk başta yabancı ve anlaşılması zor
    • Çoğu kişi quaternion kullanırken onu anlamadığından şikayet ediyor
  • Geometric Algebra ile ilgili kaynak önerileri

  • Sayfanın geri kalanında model fazla hareketli olduğu için matematiği anlamak zorlaşıyor

  • Geometric Algebra'nın karmaşıklığına yönelik eleştiri

    • Dikkat edilmezse çok fazla karışık bileşen oluşabiliyor ve n boyutlu bir uzay için 2^n terim gerekebiliyor
    • Geometriyi (iç çarpımı) ele almak için daha uygun görünüyor, ancak wedge product ve hodge star'ın (veya musical isomorphism'in) kullanılması daha iyi olabilir
    • Geometric Algebra'nın pratik faydası sorgulanıyor
  • PGA'nın (projective geometric algebra) kısaltması ilk kullanıldığında tanımlanması isteniyor

  • Geometric Algebra algoritmalarının GPU verimliliği hakkında soru işareti

    • GPU'lar matris işlemleri için optimize edildiğinden, Geometric Algebra kullanıldığında avantajın ortadan kalkıp kalkmadığı merak ediliyor
  • Yazı ilginç ve keyifli bulunmuş; özel ilgi alanı olmasa da metin çekici

  • Grafik işlemlerinin Lie algebra teorisinin açıklanmasına ihtiyaç olduğu belirtiliyor