35
Graphismes HTML5 grâce à Canvas & SVG David Catuhe & David Rousset Relation avec les développeurs Microsoft France @davrous @deltakosh http://blogs.msdn.com/davrou s http:// blogs.msdn.com/eternalcoding

AMDEV: Graphismes avec html5 grâce à canvas et svg

  • Upload
    davrous

  • View
    1.240

  • Download
    1

Embed Size (px)

Citation preview

Page 1: AMDEV: Graphismes avec html5 grâce à canvas et svg

Graphismes HTML5 grâce à Canvas & SVG

David Catuhe & David RoussetRelation avec les développeursMicrosoft France

@davrous @deltakoshhttp://blogs.msdn.com/davrous http://blogs.msdn.com/eternalcoding

Page 2: AMDEV: Graphismes avec html5 grâce à canvas et svg

SEMANTICS CONNECTIVITY 3D, GRAPHICS& EFFECTS

OFFLINE& STORAGE

DEVICE ACCESS MULTIMEDIA PERFORMANCE& INTEGRATION

CSS3

Page 3: AMDEV: Graphismes avec html5 grâce à canvas et svg

SEMANTICS CONNECTIVITY 3D, GRAPHICS& EFFECTS

OFFLINE& STORAGE

DEVICE ACCESS MULTIMEDIA PERFORMANCE& INTEGRATION

CSS3

Page 4: AMDEV: Graphismes avec html5 grâce à canvas et svg

Agenda

Les bases de Canvas & SVG

Quand utiliser <canvas> ou SVG: les scénarios

L’outillage

Pour finir la journée de bonne humeur: du jeu !

Peu de slides et beaucoup de demos!

Page 5: AMDEV: Graphismes avec html5 grâce à canvas et svg

SVG

Page 6: AMDEV: Graphismes avec html5 grâce à canvas et svg

Les bases de SVG

Pour dessiner en 2D vectorielle via XML

“retained mode” : l’arbre des objets conservé en mémoire

Accès aux éléments SVG via le DOM

Les éléments SVG peuvent être stylés par CSS & décoré avec ARIA

Chargé depuis un fichier .svg ou en ligne dans un document HTML5

Scalable Vector Graphics

Page 7: AMDEV: Graphismes avec html5 grâce à canvas et svg

HTML5 <svg>

<svg width="400" height="200" xmlns="http://www.w3.org/2000/svg"> <rect fill="red" x="20" y="20" width="100" height="75" /> <rect fill="blue" x="50" y="50" width="100" height="75" /></svg>

Jetons un œil à un exemple tout simple

Page 8: AMDEV: Graphismes avec html5 grâce à canvas et svg

Les bases de SVGSVG 1.1 2nd

Edition dans IE9 et IE10

Fonctionnalité SVG IE9 IE10

Document Structure

Basic Shapes

Paths

Text

Transforms

Painting, Filling, Color

Scripting

Styling

Gradients and Patterns

Clipping and Masking

Markers and Symbols

Filter Effects

Declarative Animation

SVG Fonts

Page 9: AMDEV: Graphismes avec html5 grâce à canvas et svg

Les bases de SVG

Quelques éléments, un peu de style et d’interactivité

demo

Page 10: AMDEV: Graphismes avec html5 grâce à canvas et svg

Canvas

Page 11: AMDEV: Graphismes avec html5 grâce à canvas et svg

Les bases de Canvas

Vous permet de dessiner dans une bitmapVoyez le comme une BMP dynamique ;-)

Un jeu d’APIs JavaScript et de primitives de dessinRectangles, lignes, courbes de Bezier, etc.

Mot immédiat : « Fire and Forget »A vous de maintenir votre arbre d’objets

C’est une boîte noire : contenu non visible dans le DOM

Attention aux problèmes d’accessibilité !

Une surface de pixels dynamique contrôlée par JS

Page 12: AMDEV: Graphismes avec html5 grâce à canvas et svg

HTML5 <canvas>

<canvas id="myCanvas" width="200" height="200"> Votre navigateur ne supporte pas l’élément canvas, désolé.</canvas>

<script type="text/javascript"> var example = document.getElementById("myCanvas"); var context = example.getContext("2d"); context.fillStyle = "rgb(255,0,0)"; context.fillRect(30, 30, 50, 50); </script>

Jetons un œil à un exemple tout simple

Page 13: AMDEV: Graphismes avec html5 grâce à canvas et svg

Les bases de Canvas

L’élément, un peu d’intéractivité & IE Test Drive Canvas Pad

demo

Page 14: AMDEV: Graphismes avec html5 grâce à canvas et svg

Comment faire son choix ?

Page 15: AMDEV: Graphismes avec html5 grâce à canvas et svg

Quelques scénarios clés pour SVG en action

Documents complexes, Animation, Rapports & Accessibilité

demo

Page 16: AMDEV: Graphismes avec html5 grâce à canvas et svg

SVG : les scénarios clésDocuments vectoriels « complexes »Graphiques / Rapports / Cartographie

Soulage le serveur pour la production de graphismes haute qualité Interactivité possible et mise à jour des données via Ajax

Utilisation plus génériqueCSS ou images de fondPosters (excellent pour l’impression)Animation avec JavaScript

Jeux vidéoMeilleur SEO & Accessibilité (couplage avec ARIA)

Page 17: AMDEV: Graphismes avec html5 grâce à canvas et svg

Quelques scénarios clés pour Canvas en action

Raytracer, manipulation vidéo, rapports plus “complexes”

demo

Page 18: AMDEV: Graphismes avec html5 grâce à canvas et svg

Canvas : les scénarios clésManipulation des pixels

RayTracing, traitement d’images

Affichage de données en temps réelScènes complexes, animations mathématiques (météo, etc.)

Remplacement de pixelsA vous les effets d’écran bleu/vert à la StarWars !

Jeux vidéo

Page 19: AMDEV: Graphismes avec html5 grâce à canvas et svg

SVG vs CanvasLes choix les plus simples

Page 20: AMDEV: Graphismes avec html5 grâce à canvas et svg

Combinaison/Scénarios de recouvrement

Rapports et Graphiques interactifsSVG meilleur pour l’interaction, chargement XML & l’impressionCanvas peut être un choix plus rapide pour certains navigateurs

Jeux Vidéo 2DCanvas propose une expérience connue aux développeurs de jeux (APIs bas niveau, mode immédiat comme XNA, etc.)SVG : beaucoup d’opérations DOM & coût mémoire supérieur

Des différences plus subtiles

Page 21: AMDEV: Graphismes avec html5 grâce à canvas et svg

L’outillage

Page 22: AMDEV: Graphismes avec html5 grâce à canvas et svg

Outils pour générer du SVG

Microsoft VisioExport as SVG

Adobe IllustratorSave as SVG

InkspaceLogiciel gratuit Open Source

SVG EditLogiciel en ligne

Vous ne serez pas obligé de taper du SVG dans Notepad!

Page 23: AMDEV: Graphismes avec html5 grâce à canvas et svg

Outils pour générer du Canvas

AI2Canvas plug-in : http://visitmix.com/labs/ai2canvas/

Exporte les conceptions vectorielles et bitmap vers HTML5 canvas

Fournit un moyen de décrire les animations

Vous ne serez pas obligé de taper les primitives JS non plus ;-)

Page 24: AMDEV: Graphismes avec html5 grâce à canvas et svg

Regardons un peu l’outillage en action

SVG Edit

demo

Page 25: AMDEV: Graphismes avec html5 grâce à canvas et svg

Allez, maintenant, du fun !

Page 26: AMDEV: Graphismes avec html5 grâce à canvas et svg

1ère étape : un jeu simple !

Page 27: AMDEV: Graphismes avec html5 grâce à canvas et svg

Conception du même jeu HTML5

Comparons SVG & Canvas dans ce scénario

demo

Page 28: AMDEV: Graphismes avec html5 grâce à canvas et svg

Comparaison de performancesLa dernière étape pour vous aider à choisir

Page 29: AMDEV: Graphismes avec html5 grâce à canvas et svg

Comparaison performance Canvas vs SVG

Tous les navigateurs ne sont pas forcément égaux

demo

Page 30: AMDEV: Graphismes avec html5 grâce à canvas et svg

Revue de jeux plus complexes

Page 31: AMDEV: Graphismes avec html5 grâce à canvas et svg

BrikBrok

Un jeu de casse-brique utilisant de la composition SVG/Canvas

demo

Page 32: AMDEV: Graphismes avec html5 grâce à canvas et svg

HTML5 Platformer

Un jeu de plateforme utilisant EaselJS

demo

Page 33: AMDEV: Graphismes avec html5 grâce à canvas et svg

RessourcesIntroduction aux APIs graphiques d’HTML5: SVG & Canvas

http://blogs.msdn.com/davrous/archive/2011/05/09/introduction-aux-apis-graphiques-d-html5-svg-amp-canvas-1-4.aspx

HTML5 Platformer: portage complet du jeu XNA vers <canvas> grâce à EaselJS

http://blogs.msdn.com/davrous/archive/2011/09/09/html5-platformer-portage-complet-du-jeu-xna-vers-lt-canvas-gt-gr-226-ce-224-easeljs.aspx

Bolas Lenses : un développement HTML5 Canvas & JavaScript

http://blogs.msdn.com/eternalcoding/archive/2011/07/13/retours-sur-un-d-233-veloppement-html5-amp-javascript.aspx

Développer un jeu de casse-briques avec Canvas et SVG

http://blogs.msdn.com/b/eternalcoding/archive/2011/09/02/cahier-de-vacances-html-5-d-233-velopper-son-propre-jeu-de-casse-briques-en-html-5-avec-canvas-et-svg.aspx

Page 34: AMDEV: Graphismes avec html5 grâce à canvas et svg

questions?

Page 35: AMDEV: Graphismes avec html5 grâce à canvas et svg

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION

IN THIS PRESENTATION.