beginBitmapFill. Зависимость FPS от А: Размера BitmapData B: размера формы
Суть в следующем.
После многочисленных тестов, выяснился странный факт, что FPS при заливке области методом beginBitmapFill, никак не зависит ни от размеров заливаемой области, ни от размеров битмапы, использующейся для заливки. Что это? Как-то нелогично получается... Код AS3:
graphics.beginBitmapFill(bm10); - если вместо bm10 использую bm100 bm1000 - никакой разницы - все так же 9 FPS.. graphics.drawRect(0, 0, 100, 100); - пробовал изменять размер области от 10х10 на 1000х1000..... - ничего. Все те же 9 FPS.... Хотел сделать что-то похожее на MipMapping... но выходит, что результаты для любых размеров BitmapData - одинаковые..... Как так может быть? В чем я заблуждаюсь?? |
По-моему все логично. В данном примере вызывается 50000 раз вызов метода beginBitmapFill, на мой взгляд это равносильно, что сказать устройству - сейчас текстура такая-то. А фактическая отрисовка ее происходит только один раз graphics.drawRect(0, 0, 100, 100); Логичнее было бы 50000 раз вызвать как раз graphics.drawRect(0, 0, 100, 100); а beginBitmapFill(bm10) всего один.
|
отрисовка в graphics.endFill();
в цикл надо ставить всё рисование Код AS3:
|
ну это в этом примере так, а в другом коде у меня просто много треугольников и каждому из них соответствует своя текстура.
т.е. допустим есть 3000 треугольников. каждый из них рисуется методами lineTo. и заливается текстурой через beginBitmapFill. beginBitmapFill(BitmapData, Matrix); в таком случае вызывать graphics.clear() перед отрисовкой каждого треугольника... для этого примера это подошло бы, но не для отрисовки треугольников так как 2999 предыдущих естесственно очистятся. мне показалось нелогичным то, что при заливке этих 3000 треугольиков битмапой 10х10 пикс FPS остается таким же как и при заливке битмапой 1000х1000. от чего зависит скорость метода beginBitmapFill ? получается что неважен размер области и размер битмапы а только количество вызовов? |
ну у вас количество вызовов ни на что не влияет.. просто 50000 раз меняется ссылка на битмапу.. какая разница какого она размера? отрисовка то происходит 1 раз.
beginBitmapFill - быстрый метод - это только присвоение ссылки - отрисовка идёт в endFill Код AS3:
|
ааа, ну вообшем все прояснилось!)
пасибо! |
Цитата:
|
Часовой пояс GMT +4, время: 23:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.