Spark 2.0
Spark 2.0 : rendu 3DGS en navigateur avec système LoD en streaming pour afficher de grands mondes dans THREE.js et WebGL2.
Qu'est-ce que Spark 2.0 ?
Spark 2.0 est une mise à jour de Spark, un rendu 3D Gaussian Splatting (3DGS) dynamique conçu pour fonctionner dans le navigateur. Son objectif principal est de diffuser et de rendre de grands mondes 3DGS sur le web en ajustant automatiquement le niveau de détail au fur et à mesure que l'utilisateur se déplace.
Spark fonctionne avec THREE.js et WebGL2, visant une compatibilité étendue via les navigateurs web standards. Dans les versions antérieures de Spark, il supportait le rendu de plusieurs objets 3DGS dans la même scène, l'édition et la relumière en temps réel, ainsi qu'un système de graphe de shaders pour des effets et animations dynamiques basés sur les splats. Spark 2.0 ajoute un système de niveau de détail (LoD) qui sélectionne le détail à rendre pour le point de vue actuel et diffuse les données requises via Internet.
Fonctionnalités principales
- Rendu 3DGS en navigateur : Conçu pour fonctionner dans un navigateur web avec THREE.js et WebGL2, visant à supporter desktop, iOS, Android et VR via une lecture web standard.
- Système dynamique de niveau de détail (LoD) : Optimise le détail 3DGS en fonction du point de vue de l'utilisateur pour ne rendre que les données nécessaires.
- Diffusion en streaming pour grands mondes : Diffuse les données 3DGS requises via Internet au fur et à mesure de la navigation dans une scène, permettant des « grands mondes 3DGS » plutôt que de tout rendre à pleine fidélité.
- Composition unifiée de mondes 3DGS : Répond au besoin d'un tri correct de l'arrière vers l'avant entre plusieurs objets 3DGS pour que les objets coexistent dans le même espace 3D plutôt que d'apparaître avec des artefacts de tri local « superposés ».
- Support du graphe de shaders (fonctionnalité Spark) : Utilise un système de graphe de shaders pour créer des effets et animations dynamiques basés sur les splats (décrit comme faisant partie des fonctionnalités antérieures de Spark).
Comment utiliser Spark 2.0
Démarrez à partir d'une expérience web 3DGS basée sur Spark (ou construisez-en une dans THREE.js), puis activez ou attachez la méthode LoD de Spark 2.0 pour le monde 3DGS cible. À mesure que les utilisateurs se déplacent dans la scène, le rendu optimise automatiquement le niveau de détail des splats pour le point de vue actuel et diffuse les données correspondantes pour le rendu.
Si vous construisez ou expérimentez avec l'apparence des splats, vous pouvez interagir avec les propriétés sous-jacentes des splats décrites dans l'article (position centrale, échelles XYZ, rotation, couleur RGB et opacité) et valider comment le pipeline de rendu mélange les splats semi-transparents.
Cas d'usage
- Exploration en streaming d'environnements scannés volumineux : Lors de la navigation dans un grand monde 3DGS en navigateur, la sélection LoD et le streaming maintiennent un rendu pratique en adaptant le détail des splats au point de vue de l'utilisateur.
- Expériences 3DGS prêtes pour la VR dans des runtimes web : Comme Spark est basé sur WebGL2/THREE.js et qu'un exemple note « Meilleure expérience en VR », Spark 2.0 s'intègre dans des workflows d'exploration VR interactive reposant sur le rendu web.
- Scènes 3DGS multi-objets : Pour les scènes composées de plusieurs objets 3DGS, la conception de Spark vise un tri unifié pour une intégration visuelle des objets dans l'espace 3D.
- Édition et relumière en temps réel de scènes basées sur splats (fonctionnalité Spark) : Dans les workflows nécessitant des changements interactifs sur une scène 3DGS tout en maintenant un rendu dynamique des splats, les capacités antérieures de Spark servent de contexte pertinent pour Spark 2.0.
- Effets et animations dynamiques de splats (graphe de shaders) : Quand vous avez besoin de visuels procéduraux ou ombrés dynamiquement basés sur splats, le système de graphe de shaders de Spark est le mécanisme décrit dans la source.
FAQ
Qu'apporte Spark 2.0 par rapport à Spark ?
Spark 2.0 ajoute un système de niveau de détail (LoD) capable de diffuser et rendre de grands mondes 3DGS en ajustant le niveau de détail en fonction du point de vue de l'utilisateur.
Comment Spark rend-il le 3D Gaussian Splatting dans le navigateur ?
Le rendu est conçu pour s'intégrer à THREE.js et fonctionner sur WebGL2 dans un navigateur web standard.
Que sont les « splats » 3DGS dans ce contexte ?
L'article décrit les splats comme des millions d'ellipsoïdes semi-transparents colorés dont les propriétés incluent un centre 3D, des rayons XYZ (échelles), une orientation, une couleur RGB et une opacité ; ils se mélangent pour former des surfaces et des détails fins.
Spark supporte-t-il plusieurs objets 3DGS dans la même scène ?
Oui — Spark (le rendu) supporte plusieurs objets 3DGS dans la même scène, avec des choix de conception visant un tri unifié de l'arrière vers l'avant entre les objets.
Quel est le rôle du tri lors du rendu des splats ?
L'article explique qu'une approche courante est l'algorithme du peintre (ordre de l'arrière vers l'avant) utilisant le mélange via l'opérateur « over » ; la conception du système de Spark met l'accent sur un ordre global correct entre les objets.
Alternatives
- Rendus web 3DGS non-streaming : Les renderers alternatifs peuvent charger et afficher un ensemble fixe de splats sans streaming LoD basé sur le point de vue, ce qui peut limiter les très grands mondes.
- Autres approches de rendu 3D en navigateur (basées sur maillages/points) : Au lieu de 3DGS, certains systèmes rendent les surfaces à l’aide de triangles texturés ou d’autres primitives, troquant les caractéristiques de densité/apparence basées sur les splats pour des performances et des workflows de contenu différents.
- Autres API graphiques web : L’article cible spécifiquement WebGL2 pour une large disponibilité ; les alternatives pourraient être basées sur d’autres API, réduisant potentiellement la couverture des appareils selon la compatibilité.
- Pipelines 3DGS autonomes : Les pipelines de bureau ou natifs qui prétraitent et rendent 3DGS en dehors du navigateur peuvent éviter la complexité du streaming/LoD web, mais ne fourniront pas le même modèle d’interaction « en navigateur » décrit pour Spark.
Alternatives
DailyPlay.ai
Transformez les visiteurs passifs en clients fidèles avec DailyPlay.ai : créez des mini-jeux personnalisés, pilotés par la donnée, pour votre marque.
Ably Chat
Ably Chat : API et SDK de chat temps réel pour créer des applications personnalisées, avec réactions, présence et édition/suppression de messages.
Prompty Town
Prompty Town : une petite ville internet de liens. Achetez une tuile, associez votre lien et ajoutez un texte/contenu pour guider la visite.
Make Real
Dessinez une UI et réalisez-la en utilisant le SDK tldraw.
AakarDev AI
AakarDev AI est une plateforme puissante qui simplifie le développement d'applications d'IA avec une intégration fluide des bases de données vectorielles, permettant un déploiement rapide et une évolutivité.
beehiiv
beehiiv, plateforme tout-en-un newsletter et site : publication, croissance, analytics et monétisation pour créateurs et marques, au même endroit.