- S’intègre au pipeline de rendu THREE.js pour afficher ensemble des objets basés sur des splats et des meshes
- Excellente portabilité, fonctionne sur presque tous les appareils (plus de 98 % de prise en charge de WebGL2)
- Offre des performances de rendu rapides même sur des appareils mobiles peu puissants
- Rendu simultané de plusieurs objets splat avec tri correctement géré
- Prend en charge la plupart des principaux formats de fichiers splat, dont .PLY (y compris compressé), .SPZ, .SPLAT, .KSPLAT
- Prend en charge le rendu simultané depuis plusieurs points de vue
- Édition dynamique : chaque objet splat peut être transformé individuellement et animé
- Prend en charge l’édition des couleurs en temps réel, le déplacement et l’animation squelettique
- Un système de shader graph permet de générer/modifier dynamiquement des splats sur le GPU
1 commentaires
Commentaires sur Hacker News
Démo extrêmement impressionnante, et elle fonctionne bien même sur mon vieil iPhone
En tant que développeur de jeux amateur qui ne maîtrise pas très bien la programmation 3D professionnelle, je dirais qu’ajouter quelque part sur GitHub ou sur le site une explication d’une ligne sur ce qu’est le « Gaussian Splatting » serait utile
C’est en lisant une phrase de Wikipédia que j’ai commencé à mieux percevoir l’intérêt et le potentiel
Le Gaussian Splatting est une technique de rendu volumétrique qui affiche directement des données volumiques sans les convertir en surfaces ou en primitives linéaires
Le fait que cela permette de créer des nuages, du feu ou de la fumée très performants est vraiment génial
Il faut clairement qu’on ajoute une FAQ
La démo de scan alimentaire (l’exemple « Interactivity ») est bluffante
Regarder à l’intérieur des trous du pain dans le Mel's Steak Sandwich est particulièrement impressionnant
Même avec seulement le GPU intégré de mon ordinateur portable, les performances sont excellentes au vu du niveau de détail affiché
Je me demande dans quels domaines ce type de technologie est principalement utilisé aujourd’hui
Il existe une communauté qui scanne de petits objets avec des appareils portables ou des drones
Tipatat a fourni les scans de nourriture pour cette démo
J’aime aussi les scans de fleurs de kotohibi
https://superspl.at/user?id=kotohibi
Avec ce niveau de détail, le volume de données à transférer n’est pourtant pas si élevé
Environ 80 Mo, ce qui est vraiment étonnant
Vraiment très cool
BabylonJS gère aussi très bien les Gaussian Splats
https://doc.babylonjs.com/features/featuresDeepDive/mesh/gaussianSplatting
Aframe est plus récent et davantage orienté jeu et VR
J’aimerais savoir comment quelqu’un qui a utilisé Babylon, Aframe, Three.js et PlayCanvas les comparerait
PlayCanvas est commercial, mais semble le plus mature, le plus riche en fonctionnalités et très performant
Babylon est un moteur 3D orienté fonctionnalités, tandis que Three.js fournit surtout les bases
Le support de l’animation et des textures est bon, mais au final il faut quand même construire soi-même sa boîte à outils
Je suis curieux de connaître les bonnes comme les mauvaises expériences avec ces moteurs
La démo de l’OP est vraiment solide
Je me demande quel est le principal argument d’Aframe et où se situe sa force
Je me demande aussi comment l’avenir du Gaussian Splatting va évoluer, et si l’édition et l’animation deviendront bientôt possibles non seulement pour la simple visualisation ou les jumeaux numériques, mais aussi dans la création et le jeu vidéo
Aframe GitHub
PlayCanvas
Beau travail
Mais les performances sont très mauvaises sur mon ordinateur portable avec un GPU Nvidia RTX A3000 sous Firefox
Avec autant de cœurs shader, ça pourrait devenir brûlant au toucher
Je me demande s’il est possible de courir partout avec son téléphone et de capturer des Gaussian Splats de type herbe, buissons, terre, etc.
En sélectionnant par exemple une parcelle de sol d’un mètre carré, ou un volume d’un mètre cube incluant un buisson
Puis de répéter les blocs d’herbe et de mélanger ici et là des buissons ou de la terre pour créer un monde « façon Minecraft »
Il faudrait sans doute un sacré matériel pour rendre des milliers de blocs
Ce serait vraiment superbe à voir en pratique
Vraiment très cool
Je me demande si vous avez des informations sur les goulots d’étranglement actuels côté performances
Surtout dans les scènes dynamiques
L’exemple de simulation de particules saccade, mais dès qu’on tourne la caméra les performances s’améliorent soudainement
J’ai l’impression que cela veut dire que la partie d’arrière-plan statique était plus lourde que prévu, mais indépendamment de ça, la pyramide de Sierpinski générée procéduralement est vraiment impressionnante
Il est aussi possible que la personne ait simplement tourné la caméra vers une direction moins complexe
Il reste encore du travail pour stabiliser les performances
À l’avenir, nous comptons mettre en place un système de LOD
Un lien vers le repo qui mériterait d’être plus visible
https://github.com/sparkjsdev/spark
Je reste sceptique sur la capacité du Gaussian Splatting à aller au-delà de la démo
Les tailles de fichiers sont trop importantes
Par exemple, le steak sandwich pèse 12 Mo
Au SIGGRAPH l’an dernier, j’ai vu un clone de Matterport basé sur Gaussian Splat où il fallait streamer 1,5 Go pour visiter un appartement de deux chambres
C’est une belle démo
La technique de compression SOGS est efficace
Elle permet de stocker environ 1 million de Gaussians en incluant les Spherical Harmonics complets dans environ 14 Mo
Il y a un bon billet de blog de PlayCanvas à ce sujet
https://blog.playcanvas.com/playcanvas-adopts-sogs-for-20x-3dgs-compression
Pour référence, le steak sandwich de 12 Mo est le plus gros fichier
Tous les autres font moins de 10 Mo, et certains sont très convaincants avec seulement 1 à 3 Mo
(par exemple : Iberico Sandwich 1 Mo, Clams and Caviar 1,8 Mo, etc.)
Des méthodes de compression avancées comme SOGS devraient arriver bientôt
Cet exemple fait 30 Mo
https://vincentwoo.com/3d/sutro_tower/
La principale raison de la taille des fichiers est le stockage des coefficients de Spherical Harmonics
C’est un problème solvable
J’ai l’impression que ce nom est un peu trop utilisé
Il y a déjà Apache Spark, SPARK (Ada), sparklines et SPARQL
https://en.wikipedia.org/wiki/SPARC