Ich schreib grad ein Programm, was komplett in 2D läuft. Ein bestimmter Bereich soll jetzt unscharf gemacht werden.
Momentan benutz ich dafür nen Gaussian-Blur-Shader, wobei es da mit der Performance (von 1500 Frames auf 30) nich so toll is.
Wegen der Performance und weils mit der Kompatiblität auch nicht so super ist, such ich jetzt nach ner Alternative.
Ich hab schon versucht, einfach mehrere Quadrate immer um einen Pixel verschoben zu zeichnen (und dabei übereinanderzublenden), aber das Resultat sah einfach doof aus.
Was gibt's noch an halbwegs schönen und schnellen Alternativen?
mfg Wilson
_________________ 2+2=5 For extremely large values of two
Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
Erst horizontal und dann vertikal blurren! das heisst bei einem Radius von 5 Pixeln musst du dann pro Pixel nicht 100 Pixel verrechnen, sondern nur 20. das heisst du hast 2*(2n) anstatt (2n)^2 Pixel, die du bearbeiten musst. So kriegst du die Potenz raus und das ganze wird viel schneller.
hier ein Paper dazu, dass aber eigentlich für den Glow ist, aber darin wird halt das blurren auch angesprochen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Vielleicht auch nicht schlecht:
Anstatt das Gaussian-Blur über nen Shader zu machen, machst du im prinzip das mit den Quadraten nur dass du bei den Quadraten als Alpha-Wert den des Gauss-Wertes nimmst (ich hoffe, das war jetzt klar...)
Das Ergebnis kann sich sehen lassen und es zieht weit weniger Performance.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Super, die Kombination aus beiden Vorschlägen läuft jetzt mit ~150 fps und der Unterschied zum Shader ist fast nicht zu sehen (vor allem nicht, wenn dann noch ein halbtransparentes Objekt drüber liegt).
_________________ 2+2=5 For extremely large values of two
Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.