Does anyone know how to create a Texture feedback effect in Stage3D / AGAL?
I've just found the term "ping-ponging" in some GPU wikipage, hopefully I'm using it in the right place!
I'll share with you my sample code portion responsible for alternating between the source and destination Texture targets:
protected override function _draw():void {
super._draw();
var src:int = _textureFlip;
var dest:int = 1 - _textureFlip;
context3D.setRenderToTexture(_texturePair[dest], false, 0, 0); //
clear();
context3D.setTextureAt(0, _textureNoise);
context3D.setTextureAt(1, _texturePair[src]);
setupConstants();
context3D.setProgram(_programs[0]);
context3D.drawTriangles(_quadIndices.buffer, 0, 2);
context3D.setRenderToBackBuffer();
clear();
setupConstants();
context3D.setTextureAt(0, _texturePair[dest]);
context3D.setTextureAt(1, null);
context3D.setProgram(_programs[1]);
context3D.drawTriangles(_quadIndices.buffer, 0, 2);
context3D.present();
_textureFlip = 1 - _textureFlip;
}
Now... if I run the bottom portion by itself (and swap _texturePair[dest] with '_textureNoise'), I can see my texture fine.
Maybe I'm forgetting something in my AGAL code, but I figured I should ask here first for any guidelines.
Is it possible I have to upload some startup data (blank rect, black, white, anything!) in my first input-texture before the very first target texture is being rendered to?
- Do I need to clear the Texture targets first?
- Do I need to set the blend factors between switching from BackBuffer vs. Texture Targets?
Would very much appreciate your help :)