Moja prosta gra na płótnie wydaje się działać dobrze na Chrome i FF na Mac / Linux. Nie miałem jeszcze okazji przetestować go na smartfonach lub środowiskach Windows. Nie używa podwójnego buforowania, ale widziałem kilka przykładów JS Canvas z niego korzystających.
Kiedy zaleca się stosowanie podwójnego buforowania? Czy robi to różnicę tylko w przypadku określonych przeglądarek? Czy jest znaczący spadek wydajności?
Dzięki!
javascript
html5
html-canvas
double-buffering
Petteri Hietavirta
źródło
źródło
Odpowiedzi:
Podwójne buforowanie gry opartej na kanwie z pewnością będzie hitem wydajności. W każdej klatce rysowałbyś dodatkową liczbę pikseli równą rozmiarowi obszaru roboczego. W grach opartych na kanwie rysowanie na kanwie jest w większości przypadków największym wąskim gardłem i chcesz je maksymalnie ograniczyć, szczególnie na urządzeniach mobilnych.
Chrome ma przyspieszenie GPU (od najnowszych wersji), a także niesamowity szybki silnik JavaScript (V8), którego nie zobaczysz w środowisku mobilnym. Nawet w Chrome zobaczysz spowolnienie poprzez wdrożenie podwójnego buforowania.
Krótko mówiąc, korzyść z podwójnego buforowania (radzenia sobie z „łzawieniem”) nie jest warta wydajności, którą najprawdopodobniej wybierzesz.
źródło
Nie ma potrzeby podwójnego buforowania gier HTML5. Przeglądarka już to obsługuje, aktualizując obiekt canvas tylko po uruchomieniu skryptu. http://www.mail-archive.com/[email protected]/msg19969.html
źródło
Zauważyłem, że używając podwójnego buforowania w ten sposób:
faktycznie spowalnia renderowanie (niższe fps), zamiast go przyspieszać
źródło