我有一個問題,它變得真的很煩人。我想用一個簡單的Shader
返回所有像素的顏色的圖像,而只是分配一個腳本到Shader
被證明是一個挑戰。 我不知道PixelBender劇本,我不打算研究太多,因爲我只是想用它爲這個簡單的功能,但是從我的例子已經構造這個簡單的腳本:AS3 - PixelBender着色器引發ArgumentError
<languageVersion : 1.0;>
kernel PixelColourShader
< namespace : "puggsoy";
vendor : "Puggsoy";
version : 1;
>
{
input image4 src;
output pixel4 dst;
void
evaluatePixel()
{
dst = sampleNearest(src, outCoord());
}
}
這裏的我做了一個簡單的AS3的腳本來測試加載它:
package
{
import flash.display.Shader;
import flash.display.Sprite;
import flash.utils.ByteArray;
public class Main extends Sprite
{
[Embed(source = "PixelColourShader.pbj", mimeType = "application/octet-stream")]
private var PixelColourShader:Class;
private var shader:Shader;
public function Main():void
{
shader = new Shader(new PixelColourShader() as ByteArray);
}
}
}
我看過了許多例子,我敢肯定這是加載它的正確方法。然而,這總是給這個運行時錯誤:
[Fault] exception, information=ArgumentError: Error #2004: One of the parameters is invalid.
,我不知道爲什麼。從我所看到的參數是完全有效的。
我在做這與使用的FlashDevelop了Flex 4 SDK的AIR應用程序。
這是奇數。我不能建議很多,但我只是測試你的代碼在Flash CS5.5和它編譯並運行正常,所以我不認爲你正在做什麼不對勁的地方(以及內核本身顯然是幾乎相同的模板腳本)。 –