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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.12.2009, 13:36
ALLLCALL вне форума Посмотреть профиль Отправить личное сообщение для ALLLCALL Найти все сообщения от ALLLCALL
  № 1  
Ответить с цитированием
ALLLCALL

Регистрация: Aug 2005
Сообщений: 35
По умолчанию 10100x2 пикселей это для флеша много?

Рисую пикселями примерно так

Код AS3:
...
 [SWF(width=800, height=800, backgroundColor=0xFFFFFF, frameRate=30)]
...
 this._canvas = new BitmapData(800, 800, false, 0xFFFFFFFF);
...
 
this.addEventListener(Event.ENTER_FRAME, this.update); 
 
private  function update(e:Event):void {
...
10000 x this._canvas.getPixel32( ...
10000 x  this._canvas.setPixel (...
....
}
все жутко тормозит на 9 флеш плеере и неееемнооого получше ситуация на 10
10 000 раз считать пиксель и поставить пиксель это для флеша много ? Вот на джаве это работает нормально. Или я как-то не так с пикселями работаю?
спасибо
п.с. к компом все норм тачка шустрая

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

Регистрация: Jan 2009
Сообщений: 1,651
должно помочь BitmapData.lock() и BitmapData.unlock()
__________________
мой пустой блог

Старый 24.12.2009, 14:47
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 3  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от iflamberg Посмотреть сообщение
должно помочь BitmapData.lock() и BitmapData.unlock()
не поможет. пробовал попиксельно делать фильтры - тормозит жуть.
тоже проход по всему битмапу с заменой пикселей, 200x600 - вешался. (приходилось устанваливать script time limit на большую величину.
вопрос решился написанием собственного шейдера.
либо можно попробовать использовать стандартные фильтры/шейдера работающие сразу с байтовым массивом а не с отдельным пикселем.
__________________
Отряд Котовскага

Старый 24.12.2009, 15:05
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 4  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Да нет, тот код что вы привели - с 20000 пробегами - не должен тормозить вообще.
На моем не самом современном компьютере такие результаты:
Код AS3:
var _canvas:BitmapData = new BitmapData(800, 800, true, 0xFF000000);
var bitmap:Bitmap = new Bitmap(_canvas);
addChild(bitmap);
 
this.addEventListener(Event.ENTER_FRAME, this.update); 
 
function update(e:Event):void
{
	var t:Number = getTimer();
 
	for(var i:int = 0; i < 10000; i++)
	{
		this._canvas.getPixel32(10, 10);
	}
	for(i = 0; i < 10000; i++)
	{
		this._canvas.setPixel(20, 20, 0xFFFFFFFF);
	}
 
	trace(getTimer() - t)
}
Output: 4 3 4 4 4 3 3 2 3 и т.д.

Upd.: iflamberg дело говорит - залочивание битмапы на порядок ускоряет работу с ней.


Последний раз редактировалось Волгоградец; 24.12.2009 в 15:08.
Старый 25.12.2009, 02:33
ALLLCALL вне форума Посмотреть профиль Отправить личное сообщение для ALLLCALL Найти все сообщения от ALLLCALL
  № 5  
Ответить с цитированием
ALLLCALL

Регистрация: Aug 2005
Сообщений: 35
Волгоградец, да ты прав пиксели не виноваты, это тормозит рандом (( он вызывается примерно 260 000 раз...я понимаю жесткий код...но может есть возможноть его ускорить ?

Старый 25.12.2009, 02:37
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 6  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Битмапдата с perlinNoise() в качестве рандома, как вариант, что приходит на ум. Хотя рандом должен работать быстро.

Старый 25.12.2009, 02:39
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 7  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Есть и просто noise, без октав и сглаживаний.

Старый 25.12.2009, 03:45
ALLLCALL вне форума Посмотреть профиль Отправить личное сообщение для ALLLCALL Найти все сообщения от ALLLCALL
  № 8  
Ответить с цитированием
ALLLCALL

Регистрация: Aug 2005
Сообщений: 35
))) да мне не нужен шум на картинке, мне нужен быстрый рандом, хотя вроде здесь нашел похожее завтра попробую http://blog.controul.com/2009/04/sta...bution-in-as3/

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

Регистрация: Jan 2009
Сообщений: 1,651
2ALLLCALL:
Цитата:
))) да мне не нужен шум на картинке, мне нужен быстрый рандом
имеется ввиду, что можно использовать карту шума как источник случайных чисел.
__________________
мой пустой блог

Старый 25.12.2009, 13:15
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 10  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
опишите, что вы реально делаете, и скорей всего можно реализовать необходимый ф-ционал в 1 проход, без 10 000 итераций циклов, используя наложения, фильтры итп..
__________________
Отряд Котовскага

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

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

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


 


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


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