web-dev-qa-db-fra.com

SceneJS vs Three.JS vs autres

Avantages et inconvénients? Impossible de trouver un ensemble complet de fonctionnalités pour la bibliothèque three.js. Bien que je sache qu'il est populaire et en développement actif. Peut-être que quelqu'un a fait de la R&D sur les moteurs WebGL et peut suggérer les avantages de chaque bibliothèque?

49
oddy

En tant qu'auteur de SceneJS, je pensais que j'allais ajouter ceci si cela aide: SceneJS est spécialisé dans le rendu rapide d'un grand nombre d'objets articulés individuellement, sans effets de moteur de jeu comme les ombres, les reflets, etc.

En d'autres termes, il vise les exigences de CAO, d'anatomie médicale, de visualisations d'ingénierie, de choses avec des milliers d'écrous et de boulons, d'organes, etc.

Il a donc moins de flexibilité que three.js, GLGE et PhiloGL.

Il a cependant une pure API JSON, que les gens ont trouvé s'intègre bien avec AJAX, les analyseurs et les bases de données (par exemple CouchDB).

Donc, si vous écrivez un jeu, je vous pointerais vers l'un des autres cadres, mais si vous écrivez un visualiseur CAD alors SceneJS pourrait faire l'affaire).

89
xeolabs

J'utilise souvent la popularité d'un projet sur GitHub comme indicateur de son succès. Bien qu'il y ait des problèmes avec cette méthode, je trouve que c'est souvent la meilleure façon de faire un choix. Liste des projets WebGL populaires, en baisse de popularité en nombre de "stars":

Cela reflète également ce que j'ai trouvé en examinant ces projets. three.js semble être la plus complète des fonctionnalités, possède un ensemble complet d'exemples, une base de code bien structurée et une communauté florissante.

36
jterrace

Il s'agit essentiellement d'un doublon de WebGL Framework , mais les réponses ont probablement changé depuis lors. Voir aussi Quel framework WebGL dois-je apprendre?

Étant donné que le monde de WebGL se développe si rapidement en ce moment, il serait difficile de trouver une comparaison complète et à jour des cadres WebGL. Dès que quelqu'un passerait du temps à rechercher une telle chose, ce serait obsolète. Mais voici une liste annotée des frameworks WebGL:

http://www.khronos.org/webgl/wiki/User_Contributions

Si vous démarrez un projet en utilisant l'un de ces cadres, puis si vous mettez à jour cette liste en fonction de votre expérience, elle sera plus à jour qu'auparavant.

Au fait, en regardant tout à l'heure PhiloGL , j'ai été impressionné par l'ensemble complet des documents API, et qu'ils ont porté toutes les leçons WebGL pour utiliser PhiloGL (code source uniquement, pas de texte explicatif) . Je ne vois pas de tutoriel en soi; mais ils ont plusieurs exemples, donc dans l'ensemble, ils sont mieux lotis que three.js en ce qui concerne la documentation.

Quelques notes supplémentaires, pour ceux qui pourraient venir après moi (y compris moi-même):

  • CopperLicht semble se concentrer sur le chargement de modèles à partir de fichiers, par opposition à la génération de géométrie dans le code. Ce n'est pas open source.
  • PhiloGL utilise O3D pour générer la géométrie, par ex. sphères.
  • Three.js est livré avec des textures couramment utilisées.
6
LarsH

Je suis l'auteur de Jax ( http://blog.jaxgl.com/what-is-jax ), un framework mettant l'accent sur le développement piloté par les tests et les comportements et la productivité. Jax propose de puissants générateurs de code, un serveur d'applications intégré et un environnement de test, ainsi qu'une architecture MVC (modèle, vue, contrôleur) bien organisée pour votre application WebGL.

Jax est conçu avant tout pour faire avancer les choses. C'est un cadre de convention sur configuration, ce qui signifie que - bien que vous puissiez certainement faire faire les choses comme vous le souhaitez - si vous acceptez ses conventions , vous constaterez qu'il y a très peu de frais initiaux pour faire démarrer votre application.

De plus, Jax a été conçu autour de l'extensibilité. Il est facile de créer des maillages avec n'importe quel ensemble de données ou algorithmes que vous préférez utiliser, depuis leur chargement via JSON jusqu'à leur génération sur le vertex shader; et le cadre arbore un système de plug-in honnête pour que vous puissiez choisir des fonctionnalités supplémentaires (telles que la détection de collision) en fonction des besoins de votre application, sans gonfler le cadre avec des choses qui ne vous intéressent pas.

Il a beaucoup de documentation et j'ajoute plus chaque fois que j'obtiens; la page de démarrage rapide est maintenant en ligne à http://jaxgl.com , et un ensemble de guides complets se dirige lentement vers http://guides.jaxgl.com . Des liens vers la documentation de l'API y sont également disponibles.

Une sélection croissante de démos en direct de Jax en action sont également bien vivantes sur Github: http://sinisterchipmunk.github.com .

1
sinisterchipmunk