Shader funktionen per read/writepixel?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Hummelpups

Betreff: Shader funktionen per read/writepixel?

BeitragFr, Nov 11, 2005 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich versuche gerade mal, die negate funktion von
BlitzMax. Die gibts auf blitzwiki.org als beispiel
für writepixel.

Nun wollte ich diese negate funktion als eine Art
Shader laufen lassen. Ich kann leider keine
Shader in die Grafikkarte programmieren ^^ wollte
es als Funktion belassen die man bspweise so aufruft:

shader_negate(mousex(),mousey(),100,100)

das funktioniert auch schon Wunderbar. alles wird schön
an der Maus rect mit 100x100 pixel negiert.
Nur leider frisst diese funltion 10ms.
200x200 verbraucht schon 50ms.

Das liegt hauptsächlich an dem Grabpixmap denke ich
mal um den aktuellen spielescreen abzuspeichern und
dann darin zu zeichnen und später wieder
anzuzeigen.

Struktur meines Programmes ca. so

Code: [AUSKLAPPEN]
fuction shader
pm=grabpm
for
for
readpixel
writepixel pm
next
next
drawpm pm
end function

Siehe Funktion auf blitzwiki leicht verändert.

Wie kann ich da noch speed raus holen? Wie wäre es mit Writepixelfast
das es nicht gibt? Kann ich den Buffer locken für die Zeit?

Need help ,D

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus
 

Dreamora

BeitragFr, Nov 11, 2005 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
garnicht, da BM nicht auf Echtzeitpixelmanipulation ausgelegt ist.
Wenn du das willst musst du dir effektiv Shader einbinden (im englischen Board gibts ein kleines Modul das dir Shadersupport einbaut), oder du nutzt ein Modul das es bereits hat wie Vertex 3D Engine mit seinen Shadern bzw Vertex-Fragment Programmen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Hummelpups

BeitragFr, Nov 11, 2005 11:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für deine Hilfe,

das ist natürlich schade.
Werde mal im englischem Forum gucken.
Wäre natürlich toll wenn wir eine Lib erstellen
könnten, die uns Shader zur verfügung stellt.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus
 

Dreamora

BeitragFr, Nov 11, 2005 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist leider nicht ganz so einfach ... zumal auf Windows DX7 das Default ist, was garkeine Shader unterstützt Wink (und das wurde ja nur reingepackt weil viele User unfähig sind 1x im Monat ihren Grafikkartentreiber zu aktualisieren, sprich viele noch so alte haben, das OpenGL schlecht läuft)

Mit OpenGL alleine wärs wohl weniger ein Problem, gibt ja schon einige Implementationen, denn brauchen würde man wohl nur die Pixelshader. Vertexshader machen bei Quads nicht so viel Sinn Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

klepto2

BeitragFr, Nov 11, 2005 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab hier mal was mit OpenGL und dem Accubuffer gemacht, was fast an ein negativ herankommt, leider wird das ganze etwas dunkler.

Aber vielleicht reicht es ja für deine ansprüche.

http://www.blitz-pasting.net/i...amp;id=630
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

Hummelpups

BeitragFr, Nov 11, 2005 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Schönen Dank Very Happy es ging mir aber allgemein um shader
die schnell genug sind in Spielen verwendet zu werden.
Nicht nur zun invertieren.

Werde mir dein Beispiel mal angucken. Ich wollte mehrere ShaderFunktionen
programmieren, habe schon 3.

@Dreamora: erm, ja, VertexShader sind glaube ich nicht von nöten ^^
in einer 2d umgebung.
Pixel Shader sind da schon interessanter.

Habe nun z.B. eine Funltion, die den bestimmten bereich grobkörnig macht.
Also 4 px zu einem fügt, Farbe errechnet.

Solche Shader sollten vollkommen reichen. Die richtigen Shader hatten
bis vor kurzen ja auch nur bis zu 96 Befehle umfasst. Mehr nicht (!)

Einfach einen Filter über bestimmte bereiche des Bildschirms legen.
Das wärs dann.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Hummelpups

BeitragFr, Nov 11, 2005 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal das genauer was ich meine.

http://www.blitz-pasting.net/i...amp;id=631

Beschwert euch nicht wegen Webspace ,D bin auffer arbeit und hab
gerade keinen FTP Client zur hand.

Im Programm: Mausrad shader wechseln.
Will einfach ein paar bereiche so ändern.
VORSICHT: Habe noch keine Abfrage engebaut, wo er mit writepixel
hinschreibt. Kommt ihr also unten ab den Bildschirmrand, stürzt
evtl. der PC ab oder es treten Fehler auf.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Fetze

BeitragFr, Nov 11, 2005 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Also für diese Farbumkehr-Sache kannst du INVERTBLEND verwenden. Das ist derzeit noch nicht mit im Standardmodul drin, schau mal im Englischen Blitzforum danach. Irgendjemand hatte mal gepostet, wie man das nachträglich einbaut. Ich habs noch nicht ausprobiert, aber da es ein Blendmode der Graka ist, läufts wahrscheinlich sauschnell. Der zweite Vorteil ist, dass du den Invert-"Shader" dann auf beliebige Formen anwenden kannst.

Edit:
Hier, habs gefunden:
http://www.blitzbasic.com/Comm...NVERTBLEND

bruZard

BeitragFr, Nov 11, 2005 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kapiere es nicht ... kaum den Print Befehl kapiert und schon nach Shadern schreien.
Wenn Ihr Euch wirklich fit genug dafür fühlt, importiert einfache ne aktuelle OGL Version und verwendet die Shader native direkt auf der GraKa, anstatt hier irgendwelchen lahmen Müll mit Pixel Operationen durchführen zu wollen ...

ts..ts..ts ... n00bz
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Fetze

BeitragFr, Nov 11, 2005 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
...und was mache ich dann, wenn ich DirectX verwende? ^^
Wer so weit geht, kann auch gleich ein Modul schreiben.

bruZard

BeitragFr, Nov 11, 2005 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
einfache Antwort .. einfach kein fuck'n DX verwenden ...
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Suco-X

Betreff: .......

BeitragFr, Nov 11, 2005 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Beschwert euch nicht wegen Webspace ,D bin auffer arbeit und hab
gerade keinen FTP Client zur hand.


Hey, was soll denn das heißen?
Immerhin startet auch auf BPasting der Download ganz normal.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB
  • Zuletzt bearbeitet von Suco-X am So, Nov 13, 2005 15:10, insgesamt einmal bearbeitet

Hummelpups

BeitragSo, Nov 13, 2005 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry Suco so wars nicht gemeint.
ich weiß nicht wie das System funktioniert und teilweise
bei alten Threads die auf BPasting linken funzen nicht
mehr. Evtl. werden die inhalte ja überschrieben. Meinte
deswegen wenn der DL nach einiger Zeit nicht mehr
funzt, das er evtl. von der Site gelöscht wurde.

Also war nich bös gemeint. Sry. Auf meinem Space ist normalerweise
der ganze Schrott drauf geblieben weil ich nie Probleme mit der Mengen
begrenzung hatte. Sry.

Naja zu BruZ's comment sag ich einfach mal nix, trotzdem auch danke
für deine Antwort.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Suco-X

Betreff: ........

BeitragSo, Nov 13, 2005 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahso, dann nichts für ungut. Normalerweise bleiben die Downloads bestehen, wenn nicht gerade paar Kiddies dran rumfummeln (Wie es letztens geschah)
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Hummelpups

BeitragSo, Nov 13, 2005 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum editiert? ^^
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group