ActionScript'te bir Pixel Bender gölgelendiricinin kullanılmasında ilk adım, ActionScript kodunuzda gölgelendiriciye erişilmesidir. Adobe Pixel Bender Toolkit kullanılarak oluşturulmuş ve Pixel Bender dilinde yazılmış olduğundan, gölgelendiriciye doğrudan ActionScript'ten erişilemez. Bunun yerine, ActionScript'e Pixel Bender gölgelendiricisini temsil eden bir Shader sınıfı örneği oluşturursunuz. Shader nesnesi, gölgelendiricinin parametre veya girdi görüntüsü değeri bekleyip beklemediği gibi, gölgelendiriciyle ilgili bilgileri bulmanıza olanak sağlar. Gölgelendiriciyi gerçekten kullanmak için Shader nesnesini diğer nesnelere iletirsiniz. Örneğin, gölgelendiriciyi filtre olarak kullanmak için Shader nesnesini bir ShaderFilter nesnesinin
shader
özelliğine atayın. Alternatif olarak, gölgelendiriciyi çizim dolgusu olarak kullanmak için Shader nesnesini
Graphics.beginShaderFill()
yöntemine bir argüman olarak iletirsiniz.
ActionScript kodunuz, Adobe Pixel Bender Toolkit (.pbj dosyası) tarafından oluşturulan bir gölgelendiriciye iki şekilde erişebilir:
-
Çalışma zamanında yüklenen: URLLoader nesnesi kullanılarak bir gölgelendirici dosyası harici bir varlık olarak yüklenebilir. Bu teknik, metin dosyası gibi harici bir varlığın yüklenmesine benzer. Aşağıdaki örnek, çalışma zamanında gölgelendirici bayt kodunun yüklenmesini ve bir Shader örneğine bağlanmasını gösterir:
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, onLoadComplete);
loader.load(new URLRequest("myShader.pbj"));
var shader:Shader;
function onLoadComplete(event:Event):void {
// Create a new shader and set the loaded data as its bytecode
shader = new Shader();
shader.byteCode = loader.data;
// You can also pass the bytecode to the Shader() constructor like this:
// shader = new Shader(loader.data);
// do something with the shader
}
-
SWF dosyasında gömülü:
[Embed]
meta veri etiketi kullanılarak derleme zamanında gölgelendirici dosyası SWF dosyasına gömülebilir.
[Embed]
meta veri etiketi yalnızca SWF dosyasını derlemek için Flex SDK kullanırsanız kullanılabilir. Bu örnekte olduğu gibi,
[Embed]
etiketinin
source
parametresi gölgelendirici dosyasına işaret eder ve bunun
mimeType
parametresi
"application/octet-stream"
şeklindedir:
[Embed(source="myShader.pbj", mimeType="application/octet-stream")]
var MyShaderClass:Class;
// ...
// create a shader and set the embedded shader as its bytecode
var shader:Shader = new Shader();
shader.byteCode = new MyShaderClass();
// You can also pass the bytecode to the Shader() constructor like this:
// var shader:Shader = new Shader(new MyShaderClass());
// do something with the shader
Her iki durumda da ham gölgelendirici bayt kodunu (
URLLoader.data
özelliği veya
[Embed]
veri sınıfının bir örneği) Shader örneğine bağlarsınız. Önceki örneklerde gösterildiği gibi, Shader örneğine bayt kodunu iki şekilde atayabilirsiniz. Gölgelendirici bayt kodunu argüman olarak
Shader()
yapıcısına iletebilirsiniz. Alternatif olarak bu kodu Shader örneğinin
byteCode
özelliği olarak da ayarlayabilirsiniz.
Pixel Bender gölgelendiricisi oluşturulup bir Shader nesnesine bağlandıktan sonra, efektler oluşturmak için birçok şekilde gölgelendiriciyi kullanabilirsiniz. Bunu bir filtre, karışım modu, bitmap dolgusu olarak veya bitmap ya da diğer verilerin bağımsız işlemesi için kullanabilirsiniz. Gölgelendiricinin meta verilerine erişmek, girdi görüntülerini belirtmek ve parametre değerlerini ayarlamak için Shader nesnesinin
data
özelliğini de kullanabilirsiniz.
|
|
|