Комментарии 13
Интересует несколько вопросов.
1. В цикле отрисовки все время происходит перерисовка всего холста или же только измененных его частей?
2. Поддерживается ли многослойность?
1. В цикле отрисовки все время происходит перерисовка всего холста или же только измененных его частей?
2. Поддерживается ли многослойность?
Перерисовка происходит для всей «сцены», так что многие применяют трюки для борьбы с падением производительности.
Многослойность поддерживается так: что сначала в коде — то и рисуется ниже, то есть порядок определяет z-индекс элементов.
Многослойность поддерживается так: что сначала в коде — то и рисуется ниже, то есть порядок определяет z-индекс элементов.
Это трудно назвать многослойностью. Перерисовываться то все слои целиком тогда будут. Слои должны состоять из отдельных canvas элементов, наложенных друг на друга.
На первый взгляд звучит как костыль. Такое где-нибудь в серьёзных либах вообще используется?
Я думаю что это не костыль, а пока единственное возможное решение многослойности. За счёт чего и достигается производительность.
Простой пример, статичный фон 800х600 и анимированный спрайт 50х50. Зачем нам ~16 раз в секунду перерисовывать весь холст 800х600 только из-за анимации маленького спрайта? Вот и падение производительности.
Простой пример, статичный фон 800х600 и анимированный спрайт 50х50. Зачем нам ~16 раз в секунду перерисовывать весь холст 800х600 только из-за анимации маленького спрайта? Вот и падение производительности.
Как бы этот выигрыш в производительности не оказался съеден накладными расходами. Без бенчмарков я как-то не уверен.
Ну а что тут измерять? Я думаю по примеру просто очевидно, 800х600 перерисовывать или 50х50.
Пример очень простой, но дает понять суть.
Пример очень простой, но дает понять суть.
По скорости несколько слоев выгодней, но оперативки жрет больше.
Личные наблюдения.
Личные наблюдения.
На счет использования этого метода. Знаю пока только про LibCanvas. Там как раз все так и происходит
В Graphics2D тоже так можно.
https://habrahabr.ru/post/243457/
https://habrahabr.ru/post/243457/
Что с производительностью? Официальный сайт чуть не повесил Chrome.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Знакомство с p5.js