Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.02.2014, 17:34
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 1  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
По умолчанию Оптимизация при помощи BitmapData

Думая, как более понятно изложить вопрос, понял, что не знаю и решил объяснить всё с самого начала, возможно Вы поймете.
В самом начале, мне каким-то мистическим образом, попалась статья ( правда о css ), где говорилось о оптимизации ( чего не помню ) при помощи текстуры. Вот есть экран большого разрешения, а оптимизация заключается в том, чтобы сделать маленький кусочек текстуры и размножить его. И вот я почти год жил с мыслью, что сделаю также, но сейчас мысли разбегаются. Первое что сейчас приходит в голову, так это то, что уменьшится размер загружаемой текстуры. Но я все равно решил спросить, а вдруг и есть способ, размножить маленькую текстура на большой площади. Есть?)
И еще вот какой вопрос - есть атлас, на котором для удобства есть несколько закрашенных пикселей, которые нужно использовать для закрашивания не интерактивной области. И тут я, как сейчас кажется, опрометчиво взял эти пиксели и отрисовал в большую bmd с масштабированием матрицы. Но сейчас мне кажется, что это не правильно, ведь я в памяти создал гигантскую bmd и правильней было бы масштабировать bm.. Это так?

Старый 10.02.2014, 18:21
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
Но я все равно решил спросить, а вдруг и есть способ, размножить маленькую текстура на большой площади. Есть?)
Вы можете залить фигуру картинкой (с повторением) с помощью
Код AS3:
obj.graphics.beginBitmapFill()
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
И еще вот какой вопрос - есть атлас, на котором для удобства есть несколько закрашенных пикселей, которые нужно использовать для закрашивания не интерактивной области. И тут я, как сейчас кажется, опрометчиво взял эти пиксели и отрисовал в большую bmd с масштабированием матрицы. Но сейчас мне кажется, что это не правильно, ведь я в памяти создал гигантскую bmd и правильней было бы масштабировать bm.. Это так?
Тут не пойму вашу задачу. Вам нужна большая картинка одного цвета?

Старый 10.02.2014, 19:05
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 3  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Вы можете залить фигуру картинкой (с повторением) с помощью
Вот смотрите - у меня есть маленькая картинка - текстура, синий квадрат с маленьким зеленым квадратиком в центре. И мне нужно сделать текстуру из повторений этой маленькой. Если я её начну рисовать с повторением в большую bitmapData, то я сделаю только хуже ( в плане оптимизации ), так-как в памяти будет висеть большая bitmapData. И Вы предлагаете залить при помощи Graphics, а это не будет тем же самым? Как тогда рисует Graphics, если он не помещает в память большую bitmapData?
Цитата:
Тут не пойму вашу задачу. Вам нужна большая картинка одного цвета?
Да. Допустим у меня в атласе 2x2 квадратик цвета, которым мне нужно залить фон. И тут опять возвращение к первой части вопроса. Если я залью этим квадратиком большую bitmapData, то получится, что в памяти висит большой холст. Но тут два вопроса в одном - если я помещу в bitmap этот квадратик 2х2 и потом применю масштабирование, то в памяти будет висеть ведь 2х2? А если я перерисую этот квадратик в большую bitmapData и применю матрицу с масштабом, то в памяти все равно будет висеть bitmapData большая?

Старый 10.02.2014, 19:31
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>если я помещу в bitmap этот квадратик 2х2 и потом применю масштабирование, то в памяти будет висеть ведь 2х2? А если я перерисую этот квадратик в большую bitmapData и применю матрицу с масштабом, то в памяти все равно будет висеть bitmapData большая?

если вы создадите bitmapData размером 2x2, то в памяти будет висеть bitmapData размером 2x2
а вот если большую bitmapData, в памяти будет висеть большая - неожиданно, неправдали ?

кроме graphics.beginBitmapFill, размножить маленькую, не создавая большой, можно еще наплодив Bitmap'ов из одной BitmapData

Старый 10.02.2014, 19:40
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 5  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
а вот если большую bitmapData, в памяти будет висеть большая - неожиданно, неправдали ?
Да нет, просто была надежда, что при draw с матрицей, флеш плеер поймёт, что нужно рисовать не большую bitmapData, а лишь растянуть и... и можно на этом остановиться, а то волшебство получается
Цитата:
кроме graphics.beginBitmapFill, размножить маленькую, не создавая большой, можно еще наплодив Bitmap'ов из одной BitmapData
А что лучше graphics или Bitmap?

Добавлено через 1 минуту
И прошу прощения - samana, silin, Спасибо!
Поймал себя на мысли, что не поблагодарил и как-то жутко стало

Старый 10.02.2014, 19:55
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>А что лучше graphics или Bitmap?

причина, по которой мы используем или graphics или Bitmap, не всем понятна и чрезвычайно метафизична, но я попробую вам объяснить её одной фразой. Фраза эта звучит так: что удобнее, то и лучше

Старый 10.02.2014, 20:00
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 7  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
graphics - вектор.
bitmap - растр.
Вот собственно и вся разница, со всеми вытекающими.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 10.02.2014, 20:16
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 8  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Фраза эта звучит так: что удобнее, то и лучше
Для меня самый лучший пример ( пока ) работы с растром, это Starling и прежде чем я задал этот и прошлый вопрос, я много и много пытался понять, что происходит так, когда задаёшь значение параметру repeat = true. Но там Stage3D и Scale9, которые я ещё не понимаю и считаю, что в эту сторону рановато посматривать. Вот и решил спросить надеясь на конкретику.
Dukobpa3 Спасибо! Тогда наверное плодить Bitmap, так-как уходя от вектора, возвращаться к нему, кажется нелогичным. Или это не так?

Старый 10.02.2014, 20:21
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 9  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
разница, со всеми вытекающими.
Ответ здесь.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 10.02.2014, 21:44
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>Тогда наверное плодить Bitmap, так-как уходя от вектора, возвращаться к нему, кажется нелогичным. Или это не так?

ничего личного, но нелогичным мне кажется бомбить форум риторическими вопросами в поисках какого-то абстрактного абсолюта, ибо вряд ли его можно найти
в рамках конкретных задачек по-любому придется не раз уходить от вектора и возвращаться к нему, поэтому чем удобнее\быстрее\логичнее, тем и лучше

bitmap меньше грузит систему, но в graphics можно залить любой шейп(а не только прямоугольник),
с битмапами будет доступ к отдельным элементам, но в graphics можно залить с искажениями (drawTriangles), и т.д.

к слову, в упомянутом stage3D в этом смысле реализована некая идеальная ситуация - заливка текстур в любую(условно) геометрию, по любым (в рамках поддерживаемых шейдерами) правилам, в старлинге все это обернуто в аналог привычного дисплейЛиста с блекджеком и feathers'ом событиями и компонентами, при бешеной (по сравнению со stage'выми graphics и bitmap) производительности, в общем гуляй не хочу..
короче окончательное снятие с повестки вопроса graphics vs bitmap дело недалекого будущего, ага (имхо, конечно)

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:55.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.