Aktuelle Zeit: 13.05.2025, 00:05

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Shader PostProcess
BeitragVerfasst: 31.03.2009, 16:00 
Offline

Registriert: 20.03.2009, 10:02
Beiträge: 50
Ich schon wieder ;)

Im Moment versuche ich ein paar C++ Sachen nach BlitzMax zu übersetzen, stolpere aber relativ schnell über Ungereimtheiten...

Als Basis habe ich mir mal das FW von Halifax genommen -> http://irrlicht.sourceforge.net/phpBB2/ ... 256#159256

Ein Quad zu erzeugen ist kein Problem, auch Material und Texturen werfen mich nicht um. Was mich aber aus der Bahn wirft ist die Tatsache dass ich keinerlei Zusammenhang zwischen der erzeugten IndexedTriangleList und dem Material sehe ... wie wird das Quad auf Screen-Größe gebracht? Wie wird es positioniert? Wie kann es angezeigt werden ohne dass es sich um eine SceneNode handelt und ohne dass jemals eine Verbindung mit dem Material hergestellt wird? Manchmal habe ich ja den Eindruck dass C++ zaubern kann.

Vielen Dank für jeden Hinweis!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 11.05.2009, 15:32 
Offline

Registriert: 20.03.2009, 10:02
Beiträge: 50
Ok, ich habe das Problem nun selbst gelöst. Anscheinend hat der VideoDriver einen eigenen Meshbuffer dem man ein Material zuordnen kann. Die Fullscreen Frage habe ich dann per Vertexshader gelöst.

Trotzdem Danke für Ihre Aufmerksamkeit :mrgreen:


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 11.05.2009, 16:20 
Offline

Registriert: 20.03.2009, 10:02
Beiträge: 50
next big thing 8)

Ich kann erfolgreich die Textur meines Quads mittels Fragmentshader manipulieren. Aber wie bekomme ich das jetzt mit meiner Scene verrechnet? Ich kannte das bisher so dass man der Textur dann einen Flag gibt (bspw. ADD, MULTIPLY o.ä.) und diese dann mit der dahinter liegenden Scene gemischt wird. In Irrlicht scheint es das nicht zu geben.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 11.05.2009, 17:19 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
Ich hab keine Ahnung wovon du da redest, lohnt sich das überhaupt?

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 11.05.2009, 19:44 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
du könntest deine szene in ein render target rendern (..) und das mit der pp textur auf das quad legen.

_________________
yo. life's so bloody short.
Ihr dachtet Schulfernsehn sei die ultimative Folter? Falsch: Fahrstuhlmusik, extra leise.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 12.05.2009, 07:54 
Offline

Registriert: 20.03.2009, 10:02
Beiträge: 50
naja ... aber stelle Dir mal vor jemand hat eine Auflösung von 1280x1024, das als RenderTarget und so gut wie jede Grafikkarte streikt.

@Scarabol: Es geht um folgendes: Ich bastle mir ein RenderTarget und zeichne da die gesamte Scene hinein. Diese Textur (das Material) kann ich dann mittels Fragmentshader (Pixelshader) manipulieren, ein Vertexshader zieht das RenderTarget dann auf Bildschirmgröße und legt es vor die eigentliche Szene.

Problem: Wenn ich (bspw.) einen Glow-Filter erstellen will rendere ich die Szene in eine kleinere Textur (z.B. 256x256) und blurre dann die Scene. Danach wird die Textur additiv über die Scene gelegt und man hat einen sehr einfachen Glow-Filter. Nun kann ich dem Material oder der Textur aber scheinbar nicht sagen dass sie additiv gezeichnet werden soll, sie liegt immer opaque über der Szene. Anstatt eine Szene mit leichtem Glow zu erhalten sehe ich nur eine verwaschene 256x256 Textur in Fullscreen.

[EDIT]
Ich habs gelöst: In den ersten TextureLayer des Materials kommt die Fullscreen-RenderTarget Texture, in den zweiten Layer die Shader-Texture. Das Material als EMT_TRANSPARENT_ADD_COLOR angelegt und es funktioniert wie es soll.
[/EDIT]


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 12.05.2009, 12:22 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
bruZard hat geschrieben:
naja ... aber stelle Dir mal vor jemand hat eine Auflösung von 1280x1024, das als RenderTarget und so gut wie jede Grafikkarte streikt.


Selbst meine alte GeForce 4200 Ti konnte schon 2048x2048. Heute können die meisten GraKa doch schon 8192x8192.

Da sehe ich also kein Problem

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 12.05.2009, 14:00 
Offline

Registriert: 20.03.2009, 10:02
Beiträge: 50
Siehe mein Edit, habe ich nun auch heraus gefunden 8)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 20.05.2009, 13:16 
Offline

Registriert: 20.03.2009, 10:02
Beiträge: 50
Ich knete mein Hirn immer noch mit PostProcess-Shadern und habe nun etwas interessantes fetsgestellt. Es wird offenbar jeder Shaderpass mit der original Textur gefüttert anstelle mit der manipulierten aus dem letzten Pass. Meine Frage: Manipuliert ein Shader eigentlich wirklich die Textur, schreibt also die Änderungen in die Textur hinein oder habe ich da etwas grundlegend falsch verstanden?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 20.05.2009, 21:20 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
oh, cool, kannst du mal ein paar Screenies herzeigen, was du so mit den Shadern anstellst. Hab bisher noch nie Shader benutzt vielleicht, lohnt es sich ja ;-)

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 21.05.2009, 09:16 
Offline

Registriert: 20.03.2009, 10:02
Beiträge: 50
Scarabol hat geschrieben:
oh, cool, kannst du mal ein paar Screenies herzeigen, was du so mit den Shadern anstellst. Hab bisher noch nie Shader benutzt vielleicht, lohnt es sich ja ;-)

Gruß
Scarabol

Da hast Du was falsch verstanden. Im Moment kann ich damit noch garnichts tolles anstellen weil es nicht funktioniert. Ich kann einen horizontalen Fullscreen Blur ebenso machen wie einen vertikalen, ich kann auch die Gesamthelligkeit erhöhen. Blöd nur dass das alles nur einzeln und nicht wie geplant zusammen geht. Aus irgendeinem Grund nimmt der Callback immer die original Textur und nicht die modifizierte aus dem letzten Pass. Obwohl der Shadercallback die Textur als Zeiger hält, also garkeine Möglichkeit hat woanders seine Daten zu "klauen".


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Shader PostProcess
BeitragVerfasst: 22.05.2009, 11:48 
Offline

Registriert: 20.03.2009, 10:02
Beiträge: 50
Mittlerweile bin ich soweit dass alle Passes ordungsgemäß auf den Shaderbuffer angewendet werden. Nur die Kombination mit dem Backbuffer will einfach nicht gelingen. Keine Ahnung was ich da wieder verkehrt mache.

Bild


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de