2 poin oleh GN⁺ 2024-02-29 | 1 komentar | Bagikan ke WhatsApp

Menguji PGA

  • PGA (projective geometric algebra) sedang mendapat perhatian di komunitas computer graphics dan machine learning.
  • Penerapan PGA pada grafis 3D konvensional sebelumnya terbatas, tetapi proyek 'Look, Ma, No Matrices!' berupaya memperluas cakupannya dengan mengintegrasikan PGA ke engine 3D modern.
  • Proyek ini menekankan bahwa untuk mengeluarkan potensi PGA, yang dibutuhkan bukan sekadar mengganti teknologi lama, melainkan peninjauan ulang yang mendasar.

Pengantar

  • Dalam computer graphics, matriks memainkan peran yang sangat penting.
  • GPU saat ini dapat diprogram dan tidak lagi terikat pada fixed-function pipeline, sehingga kondisi untuk menggunakan PGA kini telah tersedia.
  • Matriks cocok untuk merepresentasikan transformasi linear, tetapi motor PGA dapat mengodekan gerak Euclidean dengan biaya komputasi dan memori yang lebih rendah.

FPGA: PGA yang cepat!

  • Artikel ini menjelaskan secara rinci operator dasar PGA dan teknik yang dibutuhkan pada CPU maupun GPU.
  • Vektor dasar dan tata letak memori PGA dipilih untuk meminimalkan transformasi saat memproses data grafis.
  • Struktur data PGA diterjemahkan menjadi struktur shader yang sederhana, sehingga komputasi tetap menggunakan tipe bawaan.

Mendapatkan operator geometris

  • Komposisi transformasi di PGA menggunakan geometric product yang lebih efisien daripada perkalian matriks.
  • Operator sandwich yang dibutuhkan untuk mentransformasikan titik dan arah memainkan peran penting dalam PGA.
  • Normalisasi dan operasi akar kuadrat pada motor PGA merupakan operasi penting dalam PGA, dan dapat diimplementasikan secara efisien.

Keluar dari matriks

  • Interaksi dengan konten yang sudah ada berarti matriks harus dikonversi ke padanan PGA.
  • Tidak seperti matriks 4x4, motor PGA tidak mencakup scaling, sehingga uniform scaling dilacak dengan mengalikan skala total tiap elemen dengan skala induknya.
  • Non-uniform scaling lebih kompleks, tetapi dalam banyak kasus hanya diterapkan pada leaf node.

Forward rendering

  • Forward renderer mentransformasikan geometri mesh dan menentukan piksel mana yang dicakup oleh tiap segitiga.
  • Matriks model, view, dan projection diganti dengan motor PGA, lalu transformasi yang dibutuhkan untuk tangent-space normal mapping dilakukan di vertex shader.
  • Pendekatan PGA menunjukkan bahwa vertex mesh dapat ditransformasikan dengan biaya komputasi yang hampir sama seperti saat menggunakan matriks 4x4.

Opini GN⁺

  • Proyek 'Look, Ma, No Matrices!' menawarkan alternatif yang menarik terhadap pendekatan rendering berbasis matriks yang sudah ada. Pendekatan baru untuk menangani transformasi dalam grafis 3D dengan menggunakan PGA ini berpotensi membawa inovasi di bidang computer graphics.
  • Bagi developer yang sudah terbiasa dengan operasi matriks konvensional, teknologi ini mungkin memerlukan learning curve baru, yang bisa menjadi hambatan pada tahap awal adopsi.
  • Proyek atau produk lain di industri yang menyediakan fungsi serupa meliputi graphics API seperti OpenGL atau DirectX, tetapi keduanya menggunakan pendekatan berbasis matriks tradisional.
  • Saat mengadopsi PGA, hal-hal seperti kompatibilitas dengan codebase yang sudah ada, optimisasi performa, dan pelatihan developer perlu dipertimbangkan.
  • Keuntungan yang bisa diperoleh dari memilih PGA adalah peningkatan efisiensi memori dan komputasi, tetapi hasilnya dapat berbeda tergantung pada integrasinya dengan sistem yang ada dan tingkat pemahaman developer terhadap PGA.

1 komentar

 
GN⁺ 2024-02-29
Pendapat Hacker News
  • Rekomendasi video pengantar Geometric Algebra oleh Freya Holmér

    • Berguna bagi orang yang tertarik pada grafik 3D, khususnya spline/kurva Bézier
    • Pendekatan Clifford Algebra terasa lebih intuitif dibanding aljabar linear
    • Tautan video Freya Holmér
  • Pemahaman tentang geometric algebra

    • Geometric algebra mirip dengan perkalian polinomial, tetapi urutan perkalian penting dan memiliki tabel perkalian yang tidak biasa (i*i = 1, i*j = -j*i)
    • Perkalian geometris dua vektor mencakup dot product dan cross product, tetapi dapat digeneralisasi ke dimensi yang lebih tinggi
    • Dalam geometric algebra, ini disebut "wedge product"
    • Jika memahami konsep ini, pemecahan masalah geometri seperti penurunan rumus rotasi menjadi lebih mudah
  • Berbagai pendekatan terhadap interpolasi rotasi

    • Ada berbagai metode seperti geometric algebra, quaternion, dan interpolasi matriks, tetapi setelah optimasi kodenya kebanyakan mirip
    • Geometric algebra tampak sebagai pendekatan yang paling konsisten dan paling mumpuni, meski pada awalnya terasa asing dan sulit dipahami
    • Kebanyakan orang memakai quaternion sambil mengeluh karena tidak memahaminya
  • Rekomendasi materi terkait geometric algebra

  • Sulit memahami matematika di sisa halaman karena modelnya terlalu aktif

  • Kritik terhadap kompleksitas geometric algebra

    • Jika tidak hati-hati, elemen campurannya menjadi sangat banyak, dan untuk ruang berdimensi n bisa membutuhkan 2^n suku
    • Tampaknya lebih cocok untuk menangani geometri (inner product), tetapi menggunakan wedge product dan Hodge star (atau isomorfisme musikal) mungkin lebih baik
    • Mempertanyakan kegunaan praktis geometric algebra
  • Permintaan agar singkatan PGA (projective geometric algebra) didefinisikan saat pertama kali digunakan

  • Pertanyaan tentang efisiensi GPU untuk algoritme geometric algebra

    • GPU dioptimalkan untuk operasi matriks, sehingga muncul pertanyaan apakah keuntungan geometric algebra hilang saat digunakan di GPU
  • Artikelnya menarik dan menyenangkan untuk dibaca; ini bukan bidang yang sangat diminati, tetapi tulisannya memikat

  • Diperlukan penjelasan tentang teori Lie algebra untuk operasi grafis