4. Вектор с антиалиасингом. Даже у векторного формата SVG есть такие проблемы, как просвечивающие фоны, тормозящие анимации и т.п., тем более мы их имеем при переносе вектора в WebGL. Например, при экспорте ассетов из векторного редактора, можем столкнуться с такими эффектами, как «испорченные стыки», чрезмерное потребление памяти, притормаживание анимаций. Стандартное кэширование тут не поможет, вы не сможете держать в памяти дополнительные буфера с MSAA, у которых один пиксель байт на 16. Нужны трюки, нужно использовать и 2D и WebGL, нужно кэшировать в рантайме в атласы образованные каким-то чудом, а то память провалится. А ещё не везде есть WebGL2 и нужный антиалиасинг на renderbuffer-ах, но на этот случай есть недокументированный трюк, который знают только несколько человек в мире (под IE не работает, конечно).
Статья интересная, но текст будто из машинного перевода, очень сложно читать
Просто очень много специальной терминологии. Если с этим работал - всё понятно. Если нет - то да, тяжело должно быть.
Спасибо!.
Да, статья писалась в спешке и была уже сильно адаптированная, но нету возможности разжевывать все - куда еще больше текста?
Ну да, есть большой и жирный минус - такое сложно подавать.
Возможно она будет немного упрощаться - мне не часто приходится писать на общую публику.
Хех да это весело ))) Был у меня проект в работе - 18 игр головоломок написанных на флеше. Все ресы в swf с каким то кодом. Приличная код база и много математики. В итоге в одно лицо было все портировано на openfl где то за полгода, под конец подключился еще человек. Результат был ужасен! ))) На мелких пазлах более менее было, а на больших сильно проседал фпс и память просто росла как на дрожжах. В играх юзался cacheAsBitmap - это была боль ) OpenFL не справлялся со всем набором фич. Билд игры выходил где то 1mb сжатого js кода. Еще прикол в том что на одном экране могло отображаться десятки вьюверов игры - а это анрил для webgl - потеря контекста. В итоге нами было принято волевое решение написать свою реализацию flash graphics api (flash.display) на haxe. Ну и после заменить openfl. Писал я один где то полтора месяца. Конечно я учитывал только те фичи которые нужны, а это color transform, cacheAsBitmap, mask, scrollRect, dirty zones и text. И самое главное что бы все было на canvas! В итоге получился супер легкий двиг! С поддержкой выше перечисленного. Размер билда 300кб, память вообще не растет, cacheAsBitmap реализован только для поля игры где могут располагаться десятки тысяч элементов. Color transform реализовано на уровне трансформации цвета, а не попиксельно. Ну и самое главное стабильная производительность! Одно из самых сложных это было коррекция текста - что бы он на разных браузерах был одинаково. И pixel snapping - это боль ) Поиграть можно здесь https://www.conceptispuzzles.com.
До этого я делал свой конвертер ) но как то не очень он популярен https://github.com/AntonovSergey2211/guepard
спасибо за статью, топчик
Комментарий недоступен
Спасибо за статью. Очень круто - как бывший флешер говорю.
PS: Кстати, забавно, что де-факто все стали использовать вектор в Unity. Хотя, конечно, он совершенно другой и опирается на видеокарту.