2013-01-19 1 views
1

У меня проблема, и это очень раздражает. Я хочу использовать простой Shader, чтобы вернуть цвета всех пикселей в изображении, но просто назначение сценария Shader окажется проблемой. я не знаю PixelBender сценарий, и я не собираюсь изучать его слишком много, так как я только хочу, чтобы использовать его для этой простой функции, но из примеров, которые я построил этот простой скрипт:AS3 - PixelBender Shader 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. 

и я понятия не имею, почему. Из того, что я вижу, параметр полностью действителен.

Я делаю это в приложении AIR с помощью FlashDevelop с помощью Flex 4 SDK.

+0

Это странно. Я не могу много предложить, но я только что проверил ваш код в Flash CS5.5, и он скомпилирован и работает нормально, поэтому я не думаю, что вы делаете что-то не так (и само ядро, очевидно, почти идентично шаблону скрипт). –

ответ

0

Попробуйте это:

var shaderShader = new Shader(); 
shader.byteCode = new PixelColourShader(); 
+0

Это тоже не работает, я получаю тот же результат. Также в вашем коде есть ошибка, это должно быть «shader», а не «shaderShader». – puggsoy

0

Вы должны использовать что-то вроде Adobe Pixel Bender, чтобы скомпилировать текстовый файл в двоичный ПБП.

 Смежные вопросы

  • Нет связанных вопросов^_^