Quel est l'état actuel de l'art dans les bibliothèques et frameworks JavaScript de canevas HTML? [fermé]

107

J'étudie actuellement des options pour travailler avec le canevas dans une nouvelle application HTML 5 et je me demandais quel est l'état actuel de la technique dans les bibliothèques et les frameworks JavaScript de canevas HTML?

En particulier, existe-t-il des cadres qui prennent en charge le type de choses nécessaires au développement de jeux - animation complexe, gestion des graphiques de scène, gestion des événements et des interactions des utilisateurs?

Aussi prêt à envisager des produits commerciaux et open source.

Toby Hede
la source
Si vous utilisez des graphiques de scène et gérez des événements, SVG n'est-il pas mieux adapté à vos besoins?
Joeri Sebrechts
Eh bien, c'est en partie la raison pour laquelle je demande. Canvas a définitivement l'élan, alors essayez de déterminer ce qui est faisable et ce qui ne l'est pas. SVG ne s'adapte pas particulièrement bien lorsqu'il s'agit d'animations complexes.
Toby Hede
Recherchez-vous spécifiquement des graphiques 3D, ou 2D, ou l'un ou l'autre?
LarsH
Une autre belle démo ici: kevs3d.co.uk/dev/asteroids . Je ne sais pas si la bibliothèque qu'ils ont créée est disponible pour tous. Un bel exemple de toile cependant.
Castrohenge
jsfiddle.net/user/zlatnaspirala/fiddles essayez ce framework visualJS.
Nikola Lukic

Réponses:

96

Capture d'écran Fabric.js

J'ai travaillé sur fabric.js - une bibliothèque de canevas pour vous aider exactement - à manipuler des objets sur un canevas, en gérant les événements et les interactions des utilisateurs. Il n'est pas encore sorti, mais jetez un œil à une simple démo de prévisualisation .

Vous pouvez également le voir en action dans cet éditeur de conception , pour lequel il a été créé à l'origine.

Edit: Le projet est maintenant disponible sur github (open-source sous licence MIT)

Pour commencer, consultez:

Comment Fabric se compare-t-il aux autres bibliothèques de canevas Javascript? Voici un tableau de comparaison .

Kangax
la source
Que fait-il sur IE? ExplorerCanvas?
Sasha Chedygov
14
C'est une démo phénoménale, un projet extrêmement impressionnant
démonté
3
@musicfreak Oui, ExplorerCanvas. Btw, il passe tous les ~ 900 tests dans IE9 (4ème aperçu), en utilisant son support natif de canvas.
kangax
4
Existe-t-il une page de projet pour fabric.js quelque part? Je suis assez intéressé à en savoir plus à ce sujet.
Arne Roomann-Kurrik
Whoa, juste ce dont j'ai besoin ... En fait, j'étais frustré de la difficulté à gérer les fonctions que cette bibliothèque gère de manière si transparente!
Shouvik
17

Je suis surpris que personne n'ait mentionné WebGL et les frameworks basés dessus. Je le considérerais comme haut de la liste pour l'état de l'art des graphiques 3D accélérés par GPU et des animations complexes sur toile HTML / javascript.

WebGL est une norme Web multiplateforme et libre de droits pour une API graphique 3D de bas niveau basée sur OpenGL ES 2.0, exposée via l'élément HTML5 Canvas en tant qu'interfaces de modèle d'objet de document. ...

WebGL apporte la 3D sans plugin sur le Web, implémentée directement dans le navigateur. Les principaux fournisseurs de navigateurs Apple (Safari), Google (Chrome), Mozilla (Firefox) et Opera (Opera) sont membres du groupe de travail WebGL.

WebGL est très solide dans sa prise en charge des graphiques accélérés par GPU. Découvrez ces démos de shader GLSL . :-) Et voyez ChemDoodle comme un exemple d'interaction utilisateur.

J'ai travaillé sur une application utilisant le framework O3D de Google , qui gère le graphique de la scène et utilise WebGL pour le rendu (il utilisait auparavant son propre plug-in). O3D est un travail en cours, et sa documentation n'est pas complètement à jour, mais il est en cours de développement actif, et il existe de bonnes démos . 3D Pool peut être le plus dans votre allée. Les développeurs Google sont très réactifs aux questions du groupe de discussion.

Il existe un certain nombre d'autres frameworks basés sur WebGL; voir ici . Ceux qui mentionnent le développement de jeux et les graphiques de scène incluent Copperlicht, SceneJS, X3DOM.

WebGL fonctionne dans les versions de développement récentes de plusieurs navigateurs , mais pas IE. J'utilise Firefox ("Minefield") et Chromium avec de bons résultats. Vous en aurez besoin pour exécuter les démos ci-dessus.

Cependant, si vos exigences sont qu'il ne doit avoir aucune dépendance au-delà de HTML 5 canvas / js, WebGL peut ne pas être le bon choix. Il ne semble pas qu'IE le supporte de sitôt.

Mise à jour: après avoir mis beaucoup de résistance, MS a décidé de prendre en charge WebGL dans IE 11 .

LarsH
la source
Three.js est exécuté sur webgl
JqueryToAddNumbers
@nube: bon point. Three.js peut être rendu sur un canevas WebGL, SVG ou simple (2D).
LarsH
15

three.js , par mr. doob , est un fantastique moteur 3D pour javascript qui comprend des scénegraph (versions logicielles et WebGL / hardware accélérées), des ombres, des particules, des animations skinnées (je pense) et des effets d'éclairage. Vérifiez-le, c'est un gars super talentueux.

Je dois ajouter que vous aurez besoin du dernier Google Chrome ou d'un équivalent pour voir la plupart des démos, l'un de mes favoris est: http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html

alteveer
la source
1
Cette démo est en fait encore meilleure: carvisualizer.plus360degrees.com/threejs
Pierre Henry
13

KineticJS est une bibliothèque prometteuse qui se vante de créer et d'animer des "couches" individuelles sur la toile pour des performances élevées.

http://www.kineticjs.com/

Ericbowden
la source
github.com/ericdrowell/KineticJS/#mothballed dit " Je ne maintiendrai plus ce dépôt ou le site Web officiel de KineticJS parce que je suis passé à d'autres entreprises et projets " et GitHub signale 147 problèmes ouverts
xmojmr
6

Jetez un œil au framework processingjs . De plus, la prochaine version 2.0 de mootools a le projet artistique de travailler avec la toile

Andreas Köberle
la source
3
ProcessingJS est une approche intéressante du problème, mais il s'agit essentiellement d'un DSL procédural implémenté en JavaScript, pas sûr qu'il puisse évoluer vers des applications non triviales. Vérifiera l'option MooTools.
Toby Hede
Ouais, Processing est un langage de prototypage de données. Le fait qu'il y ait un port Javascript est chouette, mais cela en fait à peine un framework HTML 5.
Peter Bailey
La question portait sur un framework de canevas et non sur html5, et c'est ce qu'est processingJS.
Andreas Köberle
Pardonnez mon erreur de sémantique. Le framework Canvas est ce à quoi je voulais en venir.
Peter Bailey
6

Raphael semble être une assez bonne bibliothèque de toiles; il est basé sur SVG (ou basé sur VML dans Internet Explorer), et prend donc en charge de nombreux événements d'entrée utilisateur. C'est assez petit (60kb gzippé), donc ce n'est pas une dépendance trop grande.
Il semble aussi avoir un tweener sympa: http://raphaeljs.com/reference.html#animate (voir ici et ici pour des exemples).

Pour un exemple de ce qu'il peut faire, jetez un œil à cette petite démo intelligente .

J'espère que cela t'aides!

Donald Harvey
la source
10
SVG n'est pas la même chose que la toile
Toby Hede
4

J'ai trouvé deux bibliothèques extrêmement compétitives et bien meilleures que Fabric.

Kinetic.js et easel.js ont tous deux une gestion d'événements, un regroupement et une abstraction générale de forme extrêmement bons. Vous trouverez beaucoup à aimer dans les deux; le chevalet semble avoir plus orienté image et filtré.

Les handlins d'événements de Fabric sont BEAUCOUP pires que l'un ou l'autre - en gros, il traite l'ensemble du canevas comme un grand rrapper d'événements et vous indique quand "Quelque chose" a été cliqué. Il n'attache pas d'événements à des formes individuelles ou à des groupes de formes.

Dave Edelhart
la source
2
FWIW, Fabric vous permet désormais d'attacher des événements directement aux objets et dispose d'une fonctionnalité de groupe générique.
kangax
3

Aussi, jeune, mais pas mal, le framework Javascript, et lui (animation complexe, gestion des graphiques de scène, gestion des événements et des interactions des utilisateurs) tout à ce sujet - jCanvaScript . Peut-être, sauf «gestion des graphiques de scène».

Alex Savin
la source
2

Si vous souhaitez utiliser Javascript, Dojo est une excellente solution. Il dispose d'une API graphique vectorielle compacte et multiplateforme (SVG, VML, Canvas, Silverlight) qui est très puissante. Vous pouvez le trouver dans dojo.gfx et dojox.gfx.

Nous l'avons utilisé pour créer un tuteur de physique interactif qui permet aux étudiants de dessiner des vecteurs, des ellipses, etc. (même ajouter des images) et d'effectuer toutes sortes de transformations sur eux. Vous pouvez voir ce que nous avons fait sur http://gideon.eas.asu.edu/web-UI/login.html - connectez-vous simplement avec n'importe quel nom d'utilisateur.

J'ai jeté un œil à fabric.js et dojox.drawing fait beaucoup des mêmes choses. Si vous regardez les tests dans la boîte à outils (une fois que vous l'avez eu son dojox / dessin / tests /), vous trouverez des exemples de tout, des graphiques vectoriels aux images en passant par les ombres créées par programme.

as
la source
1

Je suis impressionné par Akihabara en tant que moteur de jeu. Il a une documentation fantastique sous la forme de didacticiels et d'une API. J'ai même vu sur certains forums de discussion parler d'une version d'Akihabara 2. Malheureusement, tout ce discours a environ un an ou plus. J'espère vraiment que ce moteur est encore en développement.

Mars
la source
1

Je viens de publier la première itération d'une nouvelle bibliothèque de dessin et d'interpolation destinée aux personnes ayant une expérience de développement AS3 / Flash. Bien que ma bibliothèque ne prenne pas encore en charge les chemins de dessin ou les graphiques complexes, j'espère que cela aidera les gens à dessiner et animer rapidement des primitives de base d'une manière familière.

Les commentaires et commentaires sont les bienvenus. http://www.quietless.com/kitchen/introducing-js3/

braitsch
la source