@Nils: Der Weichzeichner wird auf die FBO-Textur angewendet, nicht auf die Szene die du in das FBO renderst.
Zitat:
Ich habe die Modelmatrix und Projektionsmatrix, wenn ich es richtig sehe, schon bei der Initialisierung auf Identity gesetzt
Das bezweifle ich, den dann würdest du deine Planeten nicht (vernünftig) sehen. Vermutlich hast du glLoadIdentity aufgerufen und danach dann gluPerspective, oder? Das verändert die gerade aktive Matrix....genau wie glTranslatef, gluLookAt, ....
@csderats:
Zitat:
Der Fragementshader wird ja einmal pro Pixel ausgeführt, dürfte es daher nicht schneller sein, zwei seperate Shader für Horizontal und Vertikal zu verwenden, weil ja IFs auf Uniforms angeblich so langsam sind
Ja, zwei separate Shader sind wahrscheinlich ein kleines bisschen schneller. Allerdings liegt der wesentliche Aufwand für diesen Shader nicht in der IF-Abfrage oder der FOR-Schleife sondern in den Texturzugriffen. Für einen Texturzugriff muss die Shader-Unit nämlich erstmal angehalten werden und auf den vergleichsweise langsamen Grafikspeicher warten. In diesem Fall hilft zwar der Cache, weil die Nachbarpixel quasi die gleichen Daten aus der Textur im gleichen Moment brauchen, aber trotzdem ist das langsam.
Zitat:
weil ja IFs auf Uniforms angeblich so langsam sind
Sooo schlimm ist das nicht, sie sind nur in vielen Fällen vermeidbar. Man sollte es einfach nicht übertreiben und lieber einen Shader mehr benutzen.
Der Weichzeichner wird auf die FBO-Textur angewendet, nicht auf die Szene die du in das FBO renderst.
sonst, denn eigentlich wende ich den Shader auch jetzt noch nicht auf die Textur an, sondern viel mehr auf das Zeichnen, ist für mich ein Unterschied. Aber wenn ich also mit meiner Annahme, dass ich es falsch gemacht habe, richtig liege, wie meinst Du das dann mit dem Shader ? Aktuell habe ich Überblendungen drinnen. Also komme ich in die Nähe eines Planeten/der Sonne (er liegt direkt vor einem), blenden zwei Strahlen durch das Bild - direkt vor dem Betrachter. Und genau deshalb vermute ich ja, dass ich auch jetzt noch den Shader falsch anwende.
Das sieht richtig aus, sofern der Shader da der Weichzeichner ist.
Zitat:
eigentlich wende ich den Shader auch jetzt noch nicht auf die Textur an, sondern viel mehr auf das Zeichnen, ist für mich ein Unterschied.
Also ich kann von hier nicht sehen was das da für ein Shader ist. Ich habe vermutet, dass es sich um den Weichzeichner handelt. Wenn du den Weichzeichner direkt auf die Sonne anwendest wird nur die Textur auf der Kugel weichgezeichnet, nicht aber das was du eigentlich willst, nämlich die Ränder der Kugel. Wird der Weichzeichner auf eine Textur angewendet in die die Szene gerendert wurde kann der Hintergrund mit dem Vordergrund verwischt werden. => Wenn es ein anderer Shader sein sollte dann vergiss was ich gesagt habe
Zitat:
Aktuell habe ich Überblendungen drinnen. Also komme ich in die Nähe eines Planeten/der Sonne (er liegt direkt vor einem), blenden zwei Strahlen durch das Bild - direkt vor dem Betrachter.
Äh, was genau? Kann mir gerade nicht vorstellen was du dir unter zwei Strahlen vorstellst? Screenshot?
Es handelt sich um den Shader aus dem Wiki. Von daher ist alles korrekt ? Hm, das Ergebnis sieht anders aus. Die dicken Strahlen gehen von der Sonne aus, die schmalen von der Venus (kommt gerade vorbei).
Die dicken Strahlen gehen von der Sonne aus, die schmalen von der Venus (kommt gerade vorbei).
Okay...also ich finde diese Strahlen etwas merkwürdig, aber wenn du diese wie eine Lichtquelle behandelst sollten die mit dem Glow-Effekt kompatibel sein.
Achso...ich dachte das wäre ein gewünschter Effekt den du zusätzlich eingebaut hast. Wenn der Weichzeichner diese Strahlen produziert ist offensichtlich etwas falsch. Ich tippe mal auf nicht gesetzte Uniforms?
Zitat:
Die Strahlen entstehen aus dem aktuellen Shader.
Welcher Shader? Bitte drücke dich so präzise wie möglich aus, ich sitze hier doch nicht vor deinem Code...
Das Ergebnis ist ein weißer Bildschirm. Kommentiert man die Zeile 50 aus, sieht man den Blureffekt, allerdings wird der normale Rendervorgang nicht wie gewünscht ausgeführt (Zeile 55). Aber eigentlich müsste alles laufen, hat irgendjemand eine Idee, was ich falsch mache ? Ich kann mir nicht erklären, warum ein weißer Bildschirm entsteht, wenn ich den Shader abschalte.
So, dank Coolcat läuft nun alles. Ich hatte einfach vergessen, die Modell- und Projektionsmatrix zurückzusetzen. Also hier mal der gesamte relevante Code, welcher bei mir läuft. Vertex Shader:
Dann nochmal ein großes Dankeschön an Coolcat für die Hilfe ! Ich denke dieser Dreifachpost ist nicht schlimm, dieses Thema steht so oder so im Forum Shader ganz oben. So ist es jedenfalls hoffe ich übersichtlicher.
Mitglieder in diesem Forum: 0 Mitglieder und 10 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.