|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2010
Сообщений: 18
|
Работа с альфа-каналом Bitmapdata с высокой производительностью
Всем доброго дня.
Мне нужно получить BitmapData, залитую одним цветом, чтоб она вся была полупрозрачной, а в некоторых местах чтоб в ней были полностью прозрачные "дыры" произвольной формы, с "мягкими" краями. И чтоб можно было программно управлять видом и положением этих дыр. Всё это нужно делать каждый кадр, а стало быть нужно делать быстро. Размер BitmapData 600 на 500 пикселей. Она впоследствии будет с помощью copyPixels накладываться с прозрачностью на другую BitmapData. Это всё - часть программы визуализации на основе блиттинга. Я пробовал сделать так.
Только производительность падает. Судя по моим измерениям, самое медленное место - copyChannel. Подскажите пожалуйста, как можно сделать это всё быстрее? Насколько я понимаю, существуют фреймворки, которые реализуют что-то подобное, но если это возможно, хотелось бы обойтись без них - весь остальной код уже написал сам и хочется всё сделать самому) Спасибо! Последний раз редактировалось romzes; 09.12.2012 в 15:23. |
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
Можно попробовать векторной графикой это сделать с помощью Shape.graphics http://help.adobe.com/ru_RU/FlashPla.../Graphics.html
|
|
|||||
тяжеловато...а не пробовали просто таскать ваши красные "псевдодырки" поверх с режимом наложения EREASE? и срисовывать результат только когда вам нужно, а не каждый кадр.
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
А вообще можно попробовать в Stage3D блендинг.
|
|
|||||
Регистрация: Mar 2010
Сообщений: 18
|
Спасибо, буду пробовать.
В случае с использованием Shape.graphics, я так понимаю, нужно будет создавать объект класса Shape и потом переносить его на нужную мне BitmapData с помощью метода draw? Попробовать можно, но не совсем уверен - "дырки" хочется делать растровыми, чтоб иметь возможность нарисовать их любой формы. К тому же, в перспективе я их (дырки) планировал анимировать. С blendMode.ERASE, я так понял, нужно будет создавать Sprite с изображением дырки и переносить его на нужную мне BitmapData с помощью метода draw с режимом наложения ERASE, правильно? Попробую. Немного смущает, что вроде бы draw довольно медленный. Надо будет померить, что быстрее. Да, на счет срисовывания не каждый кадр разумное замечание. У даже меня так и сделано уже (не стал упоминать в и так длиннющем описании проблемы) ), но это мало помогает - "дырки" всё время двигаются. Почти ничего не знаю о Stage3D. Только сейчас понял, что её можно использовать и для ускорения 2D-графики. Возможно, стоит всё переделать под неё. Изучаю, спасибо за совет) |
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
Цитата:
Если решили сделать это в Stage3D то только на готовых движках Starling например, без движка новичку в Stage3D делать нечего. Можно и шейдер такого материала написать, но это сложно. А самое простое и самое быстроработающее решение вот: например обратите внимание на Alternativa3D 8 там есть standerdmaterial в нём есть уже готовое решение для вашей задачи - это opacity map в Альтернативе 8 можно 3D проекцию отключить и всё готово. Скорее всего opacity map есть и в Starling'е. Блин, хотя это то-же самое) опасити мап то-же битмап и в неё то-же прийдётся рисовать. Последний раз редактировалось Sintesis; 09.12.2012 в 21:47. |
|
|||||
Регистрация: Mar 2010
Сообщений: 18
|
Благодарю за совет.
С этой задачей меня никто кроме меня самого не торопит, и энтузиазм пока есть, так что я всё же сначала рискну разобраться в Stage3D API и AGAL-е. Нашел серию статей от Марко Скабиа - http://www.adobe.com/devnet/author_b...co_scabia.html Пишет доходчиво и начиная с самых азов. Пока всё понятно и к тому ж увлекательно. Конечно, если ничего не выйдет, обращусь к Starling или Альтернативе. Еще читал хвалебные отзывы о Genome2D - https://github.com/pshtif/Genome2D |
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
тогда тебе пригодится книжка можешь поискать оригрнал на английском, а тут вот перевод есть, спасибо redefy! http://redefy.net/2011/12/14/adobe-f...e3d-chapter-1/
|
Часовой пояс GMT +4, время: 20:44. |
|
« Предыдущая тема | Следующая тема » |
Теги |
bitmapdata , copyChannel , производительность |
|
|