Seite 1 von 2
GFX Effekte in PB?
Verfasst: 16.07.2005 16:43
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
Verfasst: 16.07.2005 16:50
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.
Verfasst: 16.07.2005 17:00
von Green Snake
das das nicht direkt geht, wusste ich schon...aber....irgendwie muss das ja gehen.
opengl....
hmm...
wie macht es zb gimp?
Verfasst: 16.07.2005 17:06
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.
Verfasst: 16.07.2005 17:12
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
werde da mal was nachforschen
danke dir.
ps. vielleicht hat noch jemand ein paar ideen?

Verfasst: 16.07.2005 17:17
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.

Verfasst: 16.07.2005 17:20
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

Verfasst: 17.07.2005 05:22
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
Verfasst: 17.07.2005 08:36
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.
Verfasst: 17.07.2005 09:53
von Green Snake
danke dir zaphod, werde es mal durch lesen
