Warum hatte keiner eine Idee?
Ich habe es hinbekommen.
(Der Quelltext ist geändert. Siehe den dritten Beitrag (von mir) davor. )
OpenGL Shader Frage
Re: OpenGL Shader Frage
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: OpenGL Shader Frage
Seit gegrüßt liebe PureBasic-Gemeinde,
ich habe da mal noch eine Frage.
Wie könnte ich das PureBasic-Sprite-Management mit ScreenFilter(Shader) nutzen ?
Ich bekomme es bisher nur mit Image-Daten als Texture hin.
Innerhalb der Render-Prozedure habe ich:
Mit "GrabDrawingImage" möchte ich somit den gesamten Screeninhalt als Bild übergeben.
Das funktioniert auch wunderbar, aber nicht mit Sprites.
Ich habe alles auf Screen umgestellt und innerhalb der "SetupGLTexture(ImageHandle.i)"-Prozedure am Ende ein FreeImage(ImageHandle) hinzugefügt, weil es sonst zu Speicherfehlern kommt.
Also wenn man vorher mit DisplaySprite, ... ein Sprite auf den Screen rendern, und danach als Image dem Shader übergeben möchte, klappt das so noch nicht bei mir.
"GrabDrawingImage" nimmt nur den aktuellen Inhalt des Drawing-Blocks und ignoriert alles davor.
Daher brauche ich eine bessere Lösung.
ich habe da mal noch eine Frage.
Wie könnte ich das PureBasic-Sprite-Management mit ScreenFilter(Shader) nutzen ?
Ich bekomme es bisher nur mit Image-Daten als Texture hin.
Innerhalb der Render-Prozedure habe ich:
Code: Alles auswählen
If StartDrawing(ScreenOutput())
Box(0,0,ScreenWidth(), ScreenHeight(), RGB(255,0,0))
DrawImage(ImageID(0), x, y, 20, 20)
GrabDrawingImage(image, 0, 0, ScreenWidth(), ScreenHeight())
StopDrawing()
glSpriteTexture = SetupGLTexture(image)
EndIf
Das funktioniert auch wunderbar, aber nicht mit Sprites.
Ich habe alles auf Screen umgestellt und innerhalb der "SetupGLTexture(ImageHandle.i)"-Prozedure am Ende ein FreeImage(ImageHandle) hinzugefügt, weil es sonst zu Speicherfehlern kommt.
Also wenn man vorher mit DisplaySprite, ... ein Sprite auf den Screen rendern, und danach als Image dem Shader übergeben möchte, klappt das so noch nicht bei mir.
"GrabDrawingImage" nimmt nur den aktuellen Inhalt des Drawing-Blocks und ignoriert alles davor.
Daher brauche ich eine bessere Lösung.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: OpenGL Shader Frage
Huhu!!!
Ich habe mal:
glDeleteShader(shader.l)
glDeleteProgram(Program.l)
hinzugefügt.
Warum wird immer der System\Shader_Program -Zähler erhöht ?
Davor mache ich:
???
Ich habe mal:
glDeleteShader(shader.l)
glDeleteProgram(Program.l)
hinzugefügt.
Warum wird immer der System\Shader_Program -Zähler erhöht ?
Davor mache ich:
Code: Alles auswählen
If System\Shader_Program <> 0 ;/ delete the previous shaders
glUseProgram(0)
glDeleteShader(System\Shader_Vertex)
glDeleteShader(System\Shader_Fragment)
glDeleteProgram(System\Shader_Program)
EndIf
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: OpenGL Shader Frage
Keine Ideen, Vorschläge, etc. ?
Wenn ich "CustomFilterCallback" mit ScreenOutput() nutze scheint das auch erstmal schnell, aber nicht schnell genug.
Am Anfang ist es schnell, aber nach kurzer Zeit beginnt es mit dieser Methode stark zu stocken und die FPS brechen ein.
Mit GPU (Shadern) ist das viel besser.
Daher suche ich eine Lösung dafür.
Wenn ich "CustomFilterCallback" mit ScreenOutput() nutze scheint das auch erstmal schnell, aber nicht schnell genug.
Am Anfang ist es schnell, aber nach kurzer Zeit beginnt es mit dieser Methode stark zu stocken und die FPS brechen ein.
Mit GPU (Shadern) ist das viel besser.
Daher suche ich eine Lösung dafür.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: OpenGL Shader Frage
Hallöchen!
Ich habe hier mal einen Performance-Test.
(Zwischen Shadern und normalen ScreenOutput-Drawing)
https://workupload.com/file/rwgGeAHw (Update! Auf Stabilität optimiert!)
(Speicherfehler unter Windows wurden behoben.)
Es werden noch weitere Funkionen zur Modifikation kommen.
Außerdem noch mehr Shadereffekte (wie Schnee, Regen, etc)
Ich möchte (werde) mich auch (gerne) mit mehreren Texturen beschäftigen, für verschiedene Ebenen (z.B Schnee im Vordergrund und Hintergrund (vlt. auch Parallax) und Übergangseffekte (für Bildshows, etc.).
Ich habe hier mal einen Performance-Test.
(Zwischen Shadern und normalen ScreenOutput-Drawing)
https://workupload.com/file/rwgGeAHw (Update! Auf Stabilität optimiert!)
(Speicherfehler unter Windows wurden behoben.)
Es werden noch weitere Funkionen zur Modifikation kommen.
Außerdem noch mehr Shadereffekte (wie Schnee, Regen, etc)
Ich möchte (werde) mich auch (gerne) mit mehreren Texturen beschäftigen, für verschiedene Ebenen (z.B Schnee im Vordergrund und Hintergrund (vlt. auch Parallax) und Übergangseffekte (für Bildshows, etc.).
Zuletzt geändert von ccode_new am 11.11.2018 21:31, insgesamt 2-mal geändert.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: OpenGL Shader Frage
Update!
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: OpenGL Shader Frage
Warum funktioniert es eigentlich nicht mit dem Qt-Subsytem unter Linux ?
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat