En regardant cette question d'un autre côté:
comment un développeur choisit-il une technologie plutôt qu'une autre?
- s'intègre mieux dans leur système déjà construit
- est plus facile à utiliser
- est plus rapide
- a plus de capacités ou répond mieux à ses besoins
- Coût
- plus de platfrom-indépendant
Je vais donc discuter des différences entre les API canvas et webGL concernant ces qualités.
Canvas et webGL sont des API JavaScript. Ils sont à peu près les mêmes en ce qui concerne l'intégration (liaison). Ils sont tous deux pris en charge par un certain nombre de bibliothèques qui pourraient accélérer votre codage. Différentes bibliothèques vous donnent différentes façons d'organiser votre code, donc le choix de la bibliothèque dicte la façon dont vos API de dessin sont structurées, mais c'est toujours à peu près la même chose (comment le reste du code se lie avec lui). Si vous utilisez une bibliothèque, la facilité d'écriture du code dépend de la bibliothèque elle-même.
Si vous écrivez du code à partir de zéro, l'API canvas est beaucoup plus facile à apprendre et à comprendre. Il nécessite des connaissances mathématiques minimales et le développement est rapide et simple.
Travailler avec l'API WebGL nécessite de solides compétences en mathématiques et une compréhension complète du pipeline de rendu. Les personnes possédant ces compétences sont plus difficiles à trouver, la production est plus lente (en raison de la taille et de la complexité d'une telle base de code), et donc elle coûte plus cher.
WebGL est plus rapide et offre plus de fonctionnalités. Aucun doute à ce sujet. C'est une API 3D native qui vous donne un accès complet au pipeline de rendu, le code et les effets sont exécutés plus rapidement et sont plus `` modifiables ''. Avec webGL, il n'y a vraiment aucune limite.
Canvas et webGL sont tous deux des goodies html5. Habituellement, les appareils qui prennent en charge l'un prendront en charge l'autre.
Pour résumer:
- fusion du code API de dessin et du reste (intégration): similaire
- facilité d'utilisation:
- (avec bibliothèque) canvas = webGL
- (à partir de zéro) webGL << canevas
- vitesse: webGL> canevas
- fonctionnalités: webGL> canevas
- coût: webGL est beaucoup plus cher
- plateforme: très similaire
J'espère que cela t'aides.
PS Ouvert à la discussion.