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
Hacker News görüşleri
Freya Holmér'in Geometric Algebra'ya giriş videosu öneriliyor
Geometric Algebra'ya dair bir açıklama
i*i = 1,i*j = -j*i)wedge productdenirDönüş interpolasyonu için çeşitli yaklaşımlar
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
wedge productve hodge star'ın (veya musical isomorphism'in) kullanılması daha iyi olabilirPGA'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
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