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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
По умолчанию Замена BW фильтру

Есть около 100 Image-s на экране.
Нужен способ сделать всех чёрно-белыми (потом еще красными).
Фильтр не подходит, так как на довольно сильном десктоп гпу (i5-2500) падает до 17 кадров в секунду.
Для кеширования фильтров нужно создавать фильтр для каждого имажа.
Создание дополнительных текстур рассматривается в последнюю очередь.
Буду рад любым советам и ответам!

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Способ 1: Пишете на AGAL шейдер, который будет перекрашивать объекты на экране в реальном времени.
Способ 2: Пишете на PixelBender шейдер, который перед запуском сразу создаст перекрашенную текстуру.

Можно комбинировать, сначала создать одну чб текстуру перед запуском, а затем подкрашивать разные image разными цветами при помощи AGAL.
__________________
Дети не должны знать о своих родителях

Старый 02.08.2014, 13:23
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 3  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
да, про агал не вспомнил, спасибо! ушел ковырять!

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
BW фильтр на AGAL, что-бы проще было разбираться:
Код AS3:
package mvc.view.shaders 
{
	import starling.textures.Texture;
	import flash.display3D.Context3D;
	import flash.display3D.Program3D;
	import starling.animation.IAnimatable;
	import starling.filters.FragmentFilter;
	import flash.display3D.Context3DProgramType;
 
 
	/**
	 * Чёрно-белый шейдер.
	 * @author iiNode
	 */
	public class NoColor extends FragmentFilter{
 
		// Приват
		private var _program:Program3D;						// Шейдер отрисовки
		private var _parameters:Vector.<Number>;			// Вектор для передачи параметров фильтра
 
 
		/// Создать фильтр чёрно-белого вывода.
		public function NoColor() {
			super();
 
 
			_parameters			= new Vector.<Number>(4, true);
			_parameters[0]		= 3;
			_parameters[1]		= 0;
			_parameters[2]		= 0;
			_parameters[3]		= 0;
		}
 
 
		// ОПРЕДЕЛЕНИЕ
		override protected function activate(pass:int, context:Context3D, texture:Texture):void {
			context.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT, 0, _parameters);
			context.setProgram(_program);
		}
        protected override function createPrograms():void {
 
			var fragmentProgramCode:String =
 
				// Среднее арифметическое от суммы цветовых каналов.
				// Чёрно-белый цвет.
 
				"tex ft0, v0, fs0 <2d, clamp, linear, mipnone> 	\n" +
				"add ft1.x, ft0.x, ft0.y 						\n" +
				"add ft1.x, ft1.x, ft0.z 						\n" +
				"div ft0.x, ft1.x, fc0.x 						\n" + 
				"mov ft0.yz, ft0.xx 							\n" + 
				"mov oc, ft0									\n";
 
			_program 			= assembleAgal(fragmentProgramCode, STD_VERTEX_SHADER);
        }
 
 
		// УДАЛЕНИЕ
		public override function dispose():void{
			_program.dispose();
			super.dispose();
		}
	}
}
__________________
Дети не должны знать о своих родителях

Старый 02.08.2014, 13:40
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 5  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
Уже +10 кадров есть с вашим классом!

А что там еще можно оптимизировать?

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Не знаю, вам виднее должно быть
Это зависит от конкретной задачи. Опишите более подробно во всех деталях, что именно вы хотите сделать.
__________________
Дети не должны знать о своих родителях

Старый 02.08.2014, 13:54
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 7  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
тут хорошо видно - http://sk-express.ru/plantasia/ (выбрать любой уровень)

есть поле с цветами, 80 типов спрайта (20 типов цветов по 4 фазы каждый), в какой то момент все цветы могут стать серыми, затем красными

используется as3isolib портированный на старлинг, у каждого iso объекта есть свой спрайт цветка в контейнере

сейчас ко всем имажам применен фильтр, для теста

Старый 02.08.2014, 14:29
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 8  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Демка у меня летает. Правда, точно fps посмотреть не смог, датчик слишком мелкий, не разобрать. Вообщем, такое количество спрайтов не должно особо напрягать gpu.
С isolib не знаком, но могу дать несколько советов по Starling:
  • Используйте атласы текстур. (Ускорение производительности)
  • Используйте только целочисленные координаты для спрайтов. (Предотвращает размытие текстур и делает спрайты более чёткими)
  • Попробуйте отключить промежуточные mipMap автоматически создаваемые текстуры для меньших размеров. (Не уверен что есть польза от них в 2д)
  • Для покраски цветочков в цвет - попробуйте свойство color у Image. Только не забудьте отключить перед этим BW фильтр. Это должно быть быстрее любого фильтра.
  • Проведите анализ производительности с помощью AdobeScout. Так вы сможете точно понять, что и сколько тратит системных ресурсов.
__________________
Дети не должны знать о своих родителях

Старый 02.08.2014, 14:36
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 9  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
ctrl - + на странице
или кнопка FullScreen там снизу на часах

Старый 02.08.2014, 14:43
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 10  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
60 fps
Cpu: 4x 4.20 GHz
Gpu: Radeon R7 200

Провести мониторинг через AdobeScout очень рекомендую.
__________________
Дети не должны знать о своих родителях

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

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

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


 


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


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