2 points par GN⁺ 2024-02-29 | 1 commentaires | Partager sur WhatsApp

Tester la PGA

  • La PGA (algèbre géométrique projective) suscite de l’attention dans les communautés de l’infographie et du machine learning.
  • Son application dans les graphismes 3D traditionnels était jusqu’ici limitée, mais le projet « Look, Ma, No Matrices! » cherche à élargir son champ d’application en l’intégrant à des moteurs 3D modernes.
  • Le projet souligne qu’il ne s’agit pas de remplacer les techniques existantes, mais qu’une remise à plat plus fondamentale est nécessaire pour exploiter le potentiel de la PGA.

Introduction

  • En infographie, les matrices jouent un rôle très important.
  • Les GPU actuels sont programmables et ne sont plus liés à un pipeline à fonctions fixes, ce qui crée les conditions nécessaires à l’utilisation de la PGA.
  • Les matrices conviennent pour représenter des transformations linéaires, mais les moteurs PGA peuvent encoder les mouvements euclidiens avec un coût de calcul et de mémoire plus faible.

FPGA : de la PGA rapide !

  • L’article détaille les opérateurs de base de la PGA ainsi que les techniques nécessaires sur CPU et GPU.
  • Les vecteurs de base et l’organisation mémoire de la PGA sont choisis pour minimiser les conversions lors du traitement des données graphiques.
  • Les structures de données de la PGA se traduisent en structures de shader simples, ce qui permet de conserver les opérations avec des types intégrés.

Obtenir des opérateurs géométriques

  • Dans la PGA, la composition des transformations utilise le produit géométrique, plus efficace que la multiplication matricielle.
  • L’opérateur sandwich, nécessaire pour transformer les points et les directions, joue un rôle important dans la PGA.
  • La normalisation des moteurs PGA et les opérations de racine carrée sont des opérations importantes dans la PGA, avec des implémentations efficaces possibles.

Sortir des matrices

  • L’interaction avec les contenus existants implique de convertir les matrices vers leurs équivalents PGA.
  • Contrairement aux matrices 4x4, les moteurs PGA n’incluent pas la mise à l’échelle ; une mise à l’échelle uniforme est donc suivie en multipliant l’échelle totale de chaque élément par celle du parent.
  • La mise à l’échelle non uniforme est plus complexe, mais elle ne s’applique le plus souvent qu’aux nœuds feuilles.

Rendu forward

  • Un renderer forward transforme la géométrie du mesh et détermine quels pixels sont couverts par chaque triangle.
  • Les matrices de modèle, de vue et de projection sont remplacées par des moteurs PGA, et les transformations nécessaires au normal mapping en espace tangent sont effectuées dans le vertex shader.
  • L’approche PGA montre qu’il est possible de transformer les sommets d’un mesh avec un coût de calcul presque identique à celui d’une approche en matrices 4x4.

L’avis de GN⁺

  • Le projet « Look, Ma, No Matrices! » propose une alternative intéressante au rendu traditionnel fondé sur les matrices. Cette nouvelle manière de gérer les transformations 3D avec la PGA pourrait apporter de l’innovation au domaine de l’infographie.
  • Cette technologie peut toutefois imposer une nouvelle courbe d’apprentissage aux développeurs habitués aux opérations matricielles, ce qui peut constituer un frein au début de son adoption.
  • Parmi les autres projets ou produits du secteur offrant des fonctions comparables, on peut citer des API graphiques comme OpenGL ou DirectX, qui reposent toutefois sur une approche matricielle traditionnelle.
  • L’adoption de la PGA nécessite de prendre en compte la compatibilité avec le code existant, l’optimisation des performances et la formation des développeurs.
  • Les gains potentiels de la PGA en efficacité mémoire et en coût de calcul peuvent être intéressants, mais ils dépendront de son intégration aux systèmes existants et du niveau de compréhension de la PGA par les développeurs.

1 commentaires

 
GN⁺ 2024-02-29
Commentaires sur Hacker News
  • Recommandation de la vidéo d’introduction à l’algèbre géométrique (Geometric Algebra) de Freya Holmér

    • Utile pour les personnes intéressées par les graphismes 3D, en particulier les splines/courbes de Bézier
    • L’approche par l’algèbre de Clifford (Clifford Algebra) paraît plus intuitive que l’algèbre linéaire
    • Lien vers la vidéo de Freya Holmér
  • Compréhension de l’algèbre géométrique

    • L’algèbre géométrique est similaire à la multiplication des polynômes, mais l’ordre de multiplication compte et elle possède une table de multiplication particulière (i*i = 1, i*j = -j*i)
    • Le produit géométrique de deux vecteurs inclut le produit scalaire (dot product) et le produit vectoriel (cross product), tout en pouvant être généralisé à davantage de dimensions
    • En algèbre géométrique, cela est appelé le wedge product
    • Comprendre ce concept facilite la résolution de problèmes géométriques, comme la dérivation des formules de rotation
  • Différentes approches de l’interpolation des rotations

    • Il existe plusieurs méthodes, comme l’algèbre géométrique, les quaternions ou l’interpolation matricielle, mais après optimisation le code est en grande partie similaire
    • L’algèbre géométrique semble être l’approche la plus cohérente et la plus puissante, même si elle paraît étrange et difficile à comprendre au début
    • La plupart des gens utilisent des quaternions tout en se plaignant de ne pas les comprendre
  • Recommandation de ressources sur l’algèbre géométrique

  • Le modèle est trop actif dans le reste de la page, ce qui rend les mathématiques difficiles à suivre

  • Critique de la complexité de l’algèbre géométrique

    • Si l’on n’y prend pas garde, on se retrouve avec beaucoup d’éléments mixtes, et il peut falloir 2^n termes pour un espace de dimension n
    • Cela semble mieux adapté au traitement de la géométrie (produit intérieur), mais il pourrait être préférable d’utiliser le wedge product et le hodge star (ou l’isomorphisme musical)
    • Des doutes sont exprimés sur l’utilité réelle de l’algèbre géométrique
  • Demande de définir l’abréviation PGA (algèbre géométrique projective) lors de sa première utilisation

  • Question sur l’efficacité de l’algèbre géométrique sur GPU

    • Comme les GPU sont optimisés pour les opérations matricielles, on se demande si les avantages disparaissent quand on utilise l’algèbre géométrique
  • L’article est intéressant et agréable à lire ; ce n’est pas un domaine d’intérêt particulier, mais le texte est séduisant

  • Une explication de la théorie de l’algèbre de Lie appliquée aux opérations graphiques est nécessaire