Mein einfaches Canvas- Spiel scheint unter Chrome und FF unter Mac / Linux einwandfrei zu funktionieren. Ich hatte noch keine Gelegenheit, es auf Smartphones oder Windows-Umgebungen zu testen. Es wird keine doppelte Pufferung verwendet, aber ich habe einige JS Canvas-Beispiele dafür gesehen.
Wann wird die Verwendung der Doppelpufferung empfohlen? Macht es nur für bestimmte Browser einen Unterschied? Gibt es einen signifikanten Leistungseinbruch?
Vielen Dank!
javascript
html5
html-canvas
double-buffering
Petteri Hietavirta
quelle
quelle
Antworten:
Das doppelte Puffern eines Canvas-basierten Spiels ist mit Sicherheit ein Leistungstreffer. Sie würden in jedem Frame eine zusätzliche Menge an Pixeln zeichnen, die Ihrer Leinwandgröße entspricht. In Spielen auf Leinwandbasis ist das Zeichnen auf einer Leinwand in den meisten Fällen der größte Engpass, und Sie möchten dies so weit wie möglich einschränken, insbesondere auf Mobilgeräten.
Chrome verfügt über eine GPU-Beschleunigung (ab den neuesten Versionen) sowie eine unglaublich schnelle JavaScript-Engine (V8), die Sie in einer mobilen Umgebung nicht finden werden. Selbst in Chrome werden Sie eine Verlangsamung feststellen, wenn Sie die doppelte Pufferung implementieren.
Um es kurz zu machen, der Vorteil der doppelten Pufferung (Umgang mit "Zerreißen") ist nicht die Leistung wert, die Sie mit größter Wahrscheinlichkeit erwarten.
quelle
Es ist nicht erforderlich, HTML5-Spiele doppelt zu puffern. Der Browser übernimmt dies bereits für Sie, indem er das Zeichenbereichsobjekt erst aktualisiert, nachdem Ihr Skript ausgeführt wurde. http://www.mail-archive.com/[email protected]/msg19969.html
quelle
Mir ist aufgefallen, dass man mit Double Buffering wie folgt vorgeht:
verlangsamt tatsächlich das Rendern (niedrigere fps), anstatt es zu beschleunigen
quelle