Текстурные атласы c GPU и без
До конца не понимаю, как устраивают работу с атласами. Если атлас использовать для анимации, то е го нужно разобрать на кадры, а сам атлас удалить из памяти? И если я прав, то когда атласы используют с GPU, там такая же схема работы?
|
Нет. В GPU (а так можно и в CPU) атлас не нарезается, а висит в памяти целиком. Для отрисовки лишь его части (отдельный спрайт или нужный кадр анимации опять же отдельного мувика) процессор оперирует геометрическими и текстурными координатами вершин квада (два треугольника, сложенные в прямоугольник), это если речь о GPU, точнее конкретно о Stage3D. В случае же с "закатом солнца вручную" — когда мы работаем с CPU — просто копируем в большую экранную BitmapData нужный кусочек атласа в нужное место.
Другое дело, что в CPU есть и второй вариант. Можно для удобства использования таки нарезать атлас на отдельные BitmapData (если это анимация, то одинакового размера), отрисовать туда отдельные кадры, аккуратно разместив их в нужном месте, и потом лишь указывать экранному объекту — экземпляру Bitmap — ссылку на нужный кадр (свойство bitmapData). Так получается довольно дешевая анимация, которая, кстати, быстрее работает как раз не в режиме CPU. |
Zebestov Спасибо! Пока в GPU я не лезу и уточнять буду о CPU.
С просто копируем, у меня вроде вопросов нет, так-как это скорее всего для статичных объектов, на создание которых можно и на матрицы разорится. А вот у второго варианта мне концовка не понятна. Цитата:
|
1. Заблуждением будет считать, что с блиттингом (так называется врисовывание в "холст" прямоугольных кусков) можно делать только статику.
2. Самую обыкновенную флешку можно компилировать в режиме как CPU, так и GPU (не путать с Direct), который как раз и отличается более быстрой отрисовкой растрового контента, о котором мы здесь говорим. |
Цитата:
Цитата:
Цитата:
То есть, как-то можно включить компиляцию в режим GPU, который не тот более быстрый, о котором говорят употребляя слово Starling ( Starling, это Direct ), а тот в котором второй вариант из Вашего первого поста, будет работать быстрее? я правильно понял? Если да, то как включить режим GPU? И спасибо большое! |
Цитата:
А вот про матрицы я тебя не понял. Если речь идет о трансформациях бОльших, чем просто перемещение картинки в нужное место, то тебе они и в статике понадобятся. Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Код:
-use-gpu=true |
Zebestov Приогромнейшее Спасибо! Меня эта тема мучает уже долго, но спросить решился только сегодня. И у меня ещё один маленький вопросик - наложит ли включение опции GPU, какие-то ограничения, как например в Starling на вектор? Его включение обяжет меня использовать только растр? А то от мысли - останется все так же, только работать будет быстрее, мне очень весело становится:)
|
Ну тут следует вспомнить, как мы обсуждали тему CPU/GPU на этом же форуме как-то давно. Все участники сошлись во мнении, что при переключении режимов они ровным счетом никакого прироста не заметили. И все дело в том, что при малонагруженном графикой проекте разница на десктопах ничтожна, а при соизмеримом присутствии как растра, так и вектора, и вовсе может не проявиться. Возможно с тех пор что-то изменилось.
А вот где я лично столкнулся с влиянием режимов CPU/GPU, так это в AIR приложении для мобильных платформ: 1. CPU режим быстрее рисует вектор и быстрее осуществляет наш ручной блиттинг 2. GPU режим быстрее рисует растр своими нативными средствами (т.е. Bitmap & BitmapData) Помимо этого на мобильных платформах между этими режимами существует разница (ограничения), детали которой я уже подзабыл, бо это уже давно не актуально — Starling же ) |
Вложений: 1
У меня FlashDevelop, здесь нужно вводить ?
|
Akopalipsis, с этим флагом или без него, вы не заметите разницы. Вам же Zebestov выше об этом написал.
Ограничения есть, но я особо не вникал. Разве что, в gpu фильтры не будут работать. |
Часовой пояс GMT +4, время: 15:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.