GFX Effekte in PB?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

GFX Effekte in PB?

Beitrag von Green Snake »

hi

ist es in pb möglich, bei grafiken effekte hinzuzufügen?
ich denke da so an:

Blur (Weichzeichnen)
Sharpen (Schärfen)

etc.

is das möglich?
mal ein psydo beispiel:

Code: Alles auswählen

Init
Openscreen()
loadsprite()
Blursprite(#sprite,stärke)
displaysprite()
;dann sollte das sprite einen blureffekt bekommen haben.
is das irgendwie möglich?
gibts auch ein beispiel?

gruss Snake
-.-"
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

PureBasic selbst unterstützt nur Blendingmodien von DirectX7 und Transparents für Sprites und solche Grundsätzlichen Sachen, alles weitere geht nicht. Also großartig Effekte und sowas sind keine dabei.
Wenn du sowas brauchst wirst du wohl selbst auf DirectX oder OpenGL zurückgreifen müssen. Diese lassen sich auch in PureBasic einbinden und benutzen, aber frag mich nicht wie. Schau mal im Codearchiv und im Showcase, da gabs ein paar Sachen dazu.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

das das nicht direkt geht, wusste ich schon...aber....irgendwie muss das ja gehen.
opengl....
hmm...

wie macht es zb gimp?
-.-"
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Ohne es jetzt zu wissen, würde ich mal raten, Bildbearbeitungsprogramme machen das auf Softwareebene. Also weder OpenGL noch DirectX sondern alle Effekte werden durch die CPU errechnet. Da braucht man dann erstmal den Algorithmus für diesen Effekt. Bei Blur wäre es etwa eine Vergrößerung des Bildes, dann transparent setzen (also mit Farbwerte des Bildes mischen) und verwischen, die Pixel also mit leichtem Zufallswert in gewissem Maße mit umliegenden Pixeln vermischen. So würde ich mir das vorstellen. Das beansprucht natürlich Rechenleistung aber ein Bildbearbeitungsprogramm ist ja nicht dafür ausgelegt, dass es in Echtzeit mit möglichst > 30 Frames pro Sekunde machbar ist. Daher ist hier Softwarebasis noch machbar. Bei Spielen wirst du da Probleme bekommen, die Effekte per CPU errechnen zu lassen. (Die StartSpecialFX Funktion von PB ist auch Software realisiert und deutlich langsamer als ein 3D Sprite. Davon kannst du 2000 haben und es läuft noch flüssig mit 30 FPS, bei DisplaytranslucideSprite sinds bei mir vielleicht 50 Sprites, wenn überhaupt). Aber wenn es nicht in Echtzeit sein muss, reicht da wohl Software aus.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

jop, das man das nicht in spielen brauchen kann is klar, mich intressiert einfach, wie man so ein sprite "berechnet" und dann anzeigt :allright:
werde da mal was nachforschen :allright:

danke dir.

ps. vielleicht hat noch jemand ein paar ideen? :wink:
-.-"
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Schau mal hier: http://forums.purebasic.com/german/viewtopic.php?t=3914
Der PureGraphicshop von Franky bietet afaik auch ein paar Effekte welche auf Softwareebene laufen, denke ich zumindest. Schau dir die mal an, vielleicht gibt er dir auf Anfrage ein paar Tipps für die Algorihmen für diese Effekte. ;)
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

ich werde es zuerst ein wenig auf eigene faust versuchen, wenns doch nichts nütz, werde ich ihn gerne mal fragen

danke sunny :allright:
-.-"
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

die allgorithmen dazu sollten ziemlich bekannt sein, weswegen sich dazu auch beschreibungen im inet finden lassen sollten. auf die schnelle hab ich diese erklärung zum gaußschen blur gefunden: http://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Ich denke schon seit langem über die vorhergehensweise von Ulead PhotoImpact 6 nach, denn diese ganzen 3D Effekte etc. mit Vektorisierten Objekten ist eigentlich einfacher, wenn man mittels OpenGL auf eine Bitmap im Arbeitsspeicher rendert und es dann einfach im Softwaremodus mit GDI anzeigt.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

danke dir zaphod, werde es mal durch lesen :allright:
-.-"
Antworten