根据像素弯曲器规格,着色器可以具有一个或多个输出.像素弯曲工具包,其"导出到闪存"选项往往是严格限制闪存特定的做和不,甚至会编译这样的着色器没有抱怨.
但是,actionscript的着色器相关类似乎是针对单输出着色器.有没有办法在闪存中有多个着色器输出?
有人可以解释Flash中的Pixel Bender和Silverlight中的Pixel Shader(HLSL)在编程灵活性和运行时性能方面的差异吗?
我有一个关于像素弯曲的性能问题.我想放大许多BitmapData(将它们的大小加倍到新的BitmapData).我是用as3做的,但是想用像素弯曲器来获得更好的性能.在我的机器上,我通过像素弯曲演示获得更好的性能然后as3.
令我惊讶的是(或编码/理解不好),我在像素弯曲器中的表现要差得多 - 2秒vs 1/2秒!我期望得到至少与 as3 相同的性能.我究竟做错了什么?
我在这里得到了直观的像素弯曲代码(下面包含它以便于参考).
package
{
import flash.display.BitmapData;
import flash.display.Shader;
import flash.display.ShaderJob;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.geom.Matrix;
public class flashFlash extends Sprite
{
[Embed ( source="pixelbender/bilinearresample.pbj", mimeType="application/octet-stream" ) ]
private static var BilinearScaling:Class;
public function flashFlash( ):void
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
addEventListener( Event.ENTER_FRAME, efCb, false, 0, true );
}
private function efCb( evt:Event ):void
{
removeEventListener( Event.ENTER_FRAME, efCb, false );
traceTime( …Run Code Online (Sandbox Code Playgroud)