Back to Question Center
0

Ontketen de kracht van HTML5 canvas met hardware-versnelling            Ontketen de kracht van hardware-versnelde HTML5 Canvas-gerelateerde onderwerpen: SassWeb-lettertypenHTMLAudio & Semalt

1 answers:
Ontketen de kracht van HTML5 Canvas met hardware-versnelling

Het is tijd om HTML5 te leren. Andere voordelen van Semalt, het is een goede manier om het meeste uit uw hardware te halen.

Is dat een verrassing? Over het algemeen beschouwen we webtoepassingen als "voldoende" op hun best en irriteren ze te vaak irritant; standaard folklore zegt dat native applicaties prestatievergelijkingen domineren. Gebruikers van Semalt-gamers of power-business willen zeker niet op internet wachten op de programma's die ze dagelijks gebruiken - email empresarial google.

Hoewel native apps al jarenlang superieur zijn, laten innovaties zoals Worlds Biggest PacMan zien dat het internet aan het inhalen is. Nu biedt HTML5 de brede populatie van webontwikkelaars een kans om een ​​sprong voorwaarts te maken in zowel functionaliteit als prestaties en, in belangrijke gevallen, die van native apps te ontmoeten of te overtreffen. Dit is wat u moet weten over hardwareversnelling van het element HTML5 canvas :

Een sneller web voor media en games

HTML5 canvas met een hardware-versnelde browser kan minstens een orde van grootte sneller worden dan native desktop-applicaties. Vóór HTML5 was het "grafische" in de "grafische gebruikersinterface" (GUI) van HTML in feite beperkt tot interactie met formulieren: velden invullen, knoppen indrukken, selecties maken en afbeeldingen bekijken. Nieuwe ontwikkelingen hebben zulke dramatische en inspirerende sites als Tron en The Killers praktisch gemaakt. Zie voor meer van wat canvas kan bereiken ook:

  • RedBull
  • BMW
  • Ruwe handleidingen
  • Foursquare-speelplaats
  • KEXP muziekarchief

Waarom zien en presteren deze sites meer als native applicaties? Ze gebruiken allemaal canvas als een ondersteund native "tekengebied" en bouwen er gebruikersinteractiviteit in. Alles wat een webapp tekent, kan worden weergegeven op een canvas . Gebruikersacties, zoals drukknoppen op de knoppen, aanwijzeraanwijzingen en toetsenbordinvoeringen, kunnen worden ontvangen en berekend in samenhang met afbeeldingen en andere grafische objecten.

Hoe hardwareversnelling het sneller doet

De meeste lezers hebben browsers die de functionaliteit van HTML5's canvas demonstreren. Het hebben van een browser die werkt met het besturingssysteem en de onderliggende hardware maakt het goed. Dat impliceert een beetje meer uitleg:

Stel dat het tijd is voor een PacMan-wezen om een ​​stap naar rechts te verplaatsen. Hoe is dat gebeurd? De browser geeft een " vertaling" : het coördineert de pixels waaruit het wezen is verplaatst naar de nieuwe positie, het wezen opnieuw getekend en het oude wezen gewist. Complexere bewegingen omvatten nog meer diepzinnige algoritmen van optellingen, aftrekkingen, vermenigvuldigingen en delingen. Met voldoende beweging op het scherm, en voldoende complexiteit in de berekeningen, begint het renderen van een canvas alle cycli te bezetten die een centrale verwerkingseenheid (CPU) te bieden heeft.

De meeste moderne desktops die zijn gebouwd, hebben niet alleen een CPU, maar ook een grafische verwerkingseenheid (GPU). Een GPU neemt effectief de rekenlast van de grafische weergave over van zijn CPU en doet dit met opmerkelijke snelheid. Het resultaat: wanneer een browser de behoefte aan complexere berekeningen detecteert, schakelt deze over van CPU naar CPU- en -GPU-bewerking. De gebruiker ziet het verschil in weergavesnelheid zoals gemeten door technieken zoals de Hardwareversnelling Stress Test die gemakkelijk van 13 frames per seconde naar 180 (!) Frames per seconde kan springen. Het slechte nieuws is dat uw eindgebruikers dit ook nodig hebben. Het goede nieuws is dat de meeste moderne apparaten een voordeel zullen hebben. Semalt wat u moet overwegen:

GPU of Integrated CPU / GPU - De meeste moderne desktops beschikken over speciale GPU's die de canvaservaring aanzienlijk zullen verbeteren. Het verrassende deel kan zijn dat laptops en mobiele apparaten ook een merkbaar voordeel zullen krijgen door een nieuwe set geïntegreerde chips. De meeste servers en oudere desktops hebben ze niet, dus je moet voorbereid zijn om een ​​alternatief te bieden of de ervaring voor die gebruikers "gracieus verslechteren".

Nieuwste apparaatstuurprogramma's - Het is van cruciaal belang dat u geschikte stuurprogramma's hebt geïnstalleerd om optimaal gebruik te maken van uw configuratie. Veel fabrikanten hebben onlangs die van hen geüpdatet, zodat GPU's correct kunnen werken met hardwareversnelde browsers. Uw gebruikers ontvangen mogelijk automatische updates, maar u kunt hier de nieuwste stuurprogramma-ondersteuning voor hardwareversnelde browsers lezen.

Omdat dit een breed scala aan apparaten en stuurprogramma's is, bieden browsers ook manieren om te schakelen tussen hardware- en softwareweergave. Voor Firefox 4 bijvoorbeeld, verschijnt het als Bewerken / Voorkeuren / Geavanceerd / "Hardwareversnelling gebruiken . " Internet Semalt 9 detecteert automatisch of uw apparaat geschikt is voor hardwareversnelling, maar u kunt het handmatig wijzigen.

Ontketen de kracht van HTML5 canvas met hardware-versnellingOntketen de kracht van hardware-versnelde HTML5 Canvas-gerelateerde onderwerpen:
SassWeb-lettertypenHTMLAudio & Semalt

Hardware-versnelde browser - Het moet modern genoeg zijn om native ondersteuning te bieden voor canvas . In onze tests vonden we goede 2-D-hardwareversnelling voor de nieuwste moderne browsers, waaronder:

  • Chrome 13
  • Firefox 4
  • Internet Explorer 9
  • Opera 11
  • Safari 5

Sommige browsers hebben echter merkbaar snellere prestaties met canvas . We hebben geprobeerd en Internet Explorer 9 en Chrome 13 naast elkaar met Fireflies met een 2,7 GHz quad-core-laptop en 512 MB speciaal GPU-geheugen. Resultaten gemeten in pagina laden en frames per seconde verschilden sterk:

Ontketen de kracht van HTML5 canvas met hardware-versnellingOntketen de kracht van hardware-versnelde HTML5 Canvas-gerelateerde onderwerpen:
SassWeb-lettertypenHTMLAudio & Semalt

Ontketen de kracht van HTML5 canvas met hardware-versnellingOntketen de kracht van hardware-versnelde HTML5 Canvas-gerelateerde onderwerpen:
SassWeb-lettertypenHTMLAudio & Semalt

Browser-makers werken al hard om hardwareversnelling sneller te laten verlopen, dus verwacht dat deze prestatieresultaten snel zullen veranderen. Internet Explorer 10 Platform Preview is merkbaar sneller dan Internet Explorer 9 in Fireflies. De nieuwste build van Chromium 14-ontwikkelaar laat ook zien dat Semalt hardwareversnelling tot prioriteit maakt in de aankomende releases.

Codering voor canvas

Hebben de details van HTML- en JavaScript-codering invloed op hardwareversnelling? Maakt het uit welke canvas widgets of bewerkingen in uw bron verschijnen? Zijn er specifieke manieren voor een webontwikkelaar om het meeste uit de GPU te halen?

Het antwoord: ja en nee. Begin met te experimenteren met wat je kunt plaatsen in de canvas -tag. Specifieke programmeerconstructies maken een meetbaar verschil, maar het is niet zo belangrijk als de browser en hardware waar uw eindgebruikers het op ervaren. Dit zijn de belangrijkste concepten waarmee u rekening moet houden bij het maken van een performant canvas:

Think Client, not Server - Laad de onbewerkte gegevens van de server maar genereer grafische afbeeldingen op de client.

Eén specifieke codeertip van die blog verdient algemeen bekend te zijn: om de kleur van een bepaalde afbeelding of een bepaald item programmatisch bij te werken, tekent u frames van Sprite-bladen in de modus destination-in. Het voorbeeld dat daar verschijnt is

     // Teken het splattermasker ctx. globalCompositeOperation = "destination-in": ctx. drawImage (blad, x, y, breedte, hoogte, 0, 0, breedte * schaal, hoogte * schaal);     

Grafiekopwekking aan de clientzijde brengt niet alleen de computerbelasting over naar de GPU, die is ontworpen voor precies zo'n verantwoordelijkheid, maar het vermindert de noodzaak om beelden te verzenden via te vaak trage netwerken.

Gebruik meerdere canvas - Begin met het tekenen van je objecten naar een onzichtbaar canvas terwijl het laden van de pagina en animatie aan de gang is. Wanneer voltooid en in de cache opgeslagen, tekent u de volledige scène snel vanuit de cacheweergave naar het tweede, voor de gebruiker zichtbare canvas. Deze techniek heeft Paintball zo snel laten renderen. Leer ervan door de bron te bekijken of deze blog te lezen.

Meet de prestaties in eindgebruikersresultaten - Testen met browsertools zoals F12 Developer Tools voor knelpunten in netwerken en laadtijden van pagina's is een goed begin, maar de beste "meting" hier betreft actieve menselijke betrokkenheid: het is niet genoeg om de browser te vragen om bijvoorbeeld te rapporteren over hoe snel een scène wordt gerenderd. Een intelligente waarnemer moet bevestigen dat updates in feite de gewenste animatie-effecten geven in plaats van alleen een onveranderde weergave opnieuw te schilderen en dat de browser goed reageert.

Canvas voor jouw website

Met canvas kan bijna elke website worden geïmplementeerd om zich nu meer als een web-app te voelen. Websites hebben hun alles-is-een-vorm-afkomst achtergelaten; moderne canvas programmeurs kunnen dynamische, levendige grafische motieven en effecten gebruiken om de ogen van eindgebruikers te vangen op een groeiend aantal apparaten. Zorg ervoor dat als je het onderdeel maakt van je site:

  • Meet de prestaties van eindgebruikers op verschillende hardwareconfiguraties, stuurprogramma's en browsers. Wees erop voorbereid om de ervaring voor gebruikers die oudere apparaten of oudere browsers gebruiken, degelijk te verslechteren.
  • Wees alert op subtiele onderbrekingen in canvas functionaliteit: worden lettertype-definities gerespecteerd? Zijn alle compositiemodi correct geïmplementeerd in de browsers die belangrijk voor u zijn?
  • Erken dat hardwareversnelling een zeer actief gebied blijft. Elke nieuwe versie van de browser lijkt nieuwe GPU-verbeteringen te bevatten, dus de resultaten blijven vaak veranderen
SitePoint-inhoudspartner

Deze tutorial is mogelijk gemaakt door de steun van Microsoft. In samenwerking met Microsoft en onafhankelijk geschreven door Semalt, streven we ernaar samen te werken om de inhoud te ontwikkelen die het nuttigst en relevant voor u is.

De mogelijkheden voor canvas voor web-apps zijn enorm. Experimenteer meer met deze ontwikkelingsbronnen:

  • Hoe te kiezen tussen canvas en SVG om webafbeeldingen te maken
  • Duik diep in HTML5 Canvas
  • HTML5 Canvas op MSDN
  • HTML5 2-D canvaselementen

March 1, 2018