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