Показать сообщение отдельно
Старый 07.03.2009, 20:50
mort вне форума Посмотреть профиль Отправить личное сообщение для mort Найти все сообщения от mort
  № 3  
Ответить с цитированием
mort

Регистрация: Jun 2002
Сообщений: 391
Да как бы особо нечего описывать.

Код AS3:
package app {
	import flash.display.BitmapData;
	import flash.display.DisplayObject;
	import flash.display.Shader;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageQuality;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLLoaderDataFormat;
	import flash.net.URLRequest;	
 
	public class Main extends Sprite 
	{
		private var shader:Shader;
 
		public function Main() 
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.frameRate = 60;
			stage.quality = StageQuality.LOW;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			//
			var loader:URLLoader = new URLLoader();
			loader.dataFormat = URLLoaderDataFormat.BINARY;
			loader.addEventListener(Event.COMPLETE, prepareShader);
			loader.load(new URLRequest('pb/test.pbj'));
 
			addEventListener(Event.ENTER_FRAME, render); 
		}
 
		private function prepareShader(event:Event):void
		{
			var loader:URLLoader = event.target as URLLoader;
			shader = new Shader(loader.data);
		}
 
		private function render(event:Event = null): void 
		{
			if(shader)
			{
				graphics.clear(); 						
				graphics.beginShaderFill(shader);
				graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
				graphics.endFill();
			}
		}	
	}
}
Шейдер -- просто вывод цвета.

При размере мувика 1600х800 получается 8-12 фпс (атлон 3000). Аналогично если использовать drawTriangles или делать applyFilter для битмапа.

В пикселбендере тот же шейдер в таком размере дает огромные фпс.

Вопрос -- можно ли достичь того же во флеше.