Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-06-2009, 16:12   #1 (permalink)
industry painter
 
Benutzerbild von edding950
 
Registriert seit: Aug 2006
Ort: auf'm Pott
Beiträge: 760
Pixelbender Machbarkeitsfrage

Mit Shader lassen sich ja bekanntlich prima eigene BlendModes erstellen. Allerdings bräuchte ich aktuell sowas wie eine Mischform aus ShaderFilter und BlendMode.

Zum einen brauche ich den Pixelinput von ZWEI Bildern..zum anderen die Möglichkeit, den resultierenden Effekt mehrmals auf ein Sprite anwenden zu können und das möglichst Performanzschonend (also nach Möglichkeit über das filters-Array).

Kann man einem ShaderFilter einen image4-inputparameter verpassen oder geht das anders..wenn ja wie?

Danke im Voraus.
__________________
mfg.
edding950 ist offline   Mit Zitat antworten
Alt 20-06-2009, 16:50   #2 (permalink)
vermisst ein e
 
Benutzerbild von kRizzl
 
Registriert seit: Oct 2007
Beiträge: 774
klar kannst du zwei (und wahrscheinlich sogar mehr) quellbilder angeben, wie sonst sollten blend modes funktionieren? das funktioniert genauso wie die angabe vom ersten input-bild.

in flash musst du die beiden quellbilder dem shader explizit zuweisen, sofern du ihn nicht als blendmode verwendest.
__________________
krisrok.de
kRizzl ist offline   Mit Zitat antworten
Alt 20-06-2009, 16:53   #3 (permalink)
industry painter
 
Benutzerbild von edding950
 
Registriert seit: Aug 2006
Ort: auf'm Pott
Beiträge: 760
Ok, ich habs schon selbst rausgefunden:

Entscheident ist hier natürlich, dass jeweils dem zweiten im Pixelbendercode deklarierten pixel4-Input ein BitmapData-Object übergeben wird. Beim zuweisen des Filters mittels Filter-Array wird dann der erstdeklarierte pixel4-Input gesetzt.

ActionScript:
  1. var back:Bitmap = new imgsrc1() as Bitmap;
  2.             var front:Bitmap;
  3.            
  4.             addChild(back);
  5.            
  6.             var bmp:BitmapData = new BitmapData(back.width, back.height, true, 0x00000000);
  7.            
  8.             bmp.perlinNoise(100, 100, 2, 0xff, true, true, BitmapDataChannel.ALPHA, true, []);
  9.            
  10.             shader = new Shader(new FilterBinding());
  11.             shader.data.foreground.input = bmp;
  12.            
  13.             back.filters = [new ShaderFilter(shader)];

Schön dass das so einfach geht.

Edit: @krizzl: jo dange - das mit den multiplen Inputs hatte ich noch gar nicht bedacht...das eröffnet schon wieder gaaanz ganz viele Türen.
__________________
mfg.

Geändert von edding950 (20-06-2009 um 16:55 Uhr)
edding950 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele