kurze Frage, wenn ich mittels FBO und einem Fullscreenquad rendere, sollte ich dann als Auflösung immer eine Größe mit Breite=Höhe nehmen wie z.b. 500x500? Oder lieber größen wie 640x480, 800x600, 1024x768.. ? Oder ist es performancetechnisch wurst und nur von der max. Anzahl der Pixel abhängig?
nun ich rendere in den FBO und jage die Textur nochmal durch einen Shader (blur) wärend ich auf ein Quad rendere. Also spielt das verhältnis quasi keine Rolle?
Richtig, das Verhältnis ist egal. Wenn du aber sowieso blurrst kannst du ggf. die Auflösung reduzieren und das Bild später hoch skalieren. Du musst natürlich die Artefakte die dabei entstehen gegen die Performance abwägen. Ich würde es mal mit 70% der Bildgröße versuchen, das spart schon 51% der Pixel/Speicher ein. Dadurch das der Blur-Radius geringer sein kann sparst du nochmal.
nun ich rendere Hauptszene und den Blureffekt meiner Lämpchen in einem FBO doch in 2 Texturen. Die müssen doch die gleiche größe haben oder? Da wir hier schon bei FBO sind.. gibts auch ne möglichkeit das hässliche Alising ein wenig softer hinzubekommen? Aktuell sieht das so aus:
Du renderst zwei Bilder: 1. Die normale Szene muss natürlich die korrekte Größe haben. 2. Das Bild mit nur Glüh-Objekten und allem anderen schwarz.
Das zweite Bild wird dann irgendwann später nach dem Blur-Shader auf die normale addiert. Das aufaddieren machst du indem du ein Fullscreen-Quad mit aktivem Blending renderst. Dabei kann man doch auch gleichzeitig das Bild hoch skalieren. Das macht die Grafikkarte automatisch, ist schließlich eine Textur die du da renderst.
Zitat:
Gibts da nich einstellungen wie Bilinear, Trilinear, anisotrophisch etc??
Bilinear ist: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); Trilinear ist: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); => In sofern hast du das wohl schon selbst gefunden
Anisotrophie kannst du über eine Extension aktivieren: GL_EXT_texture_filter_anisotropic Möglich das diese Extension Teil von OpenGL 2.x ist, gerade keine Lust das selbst zu checken. Du solltest vorher mit glGet*** testen was der Wert von GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT ist bevor du irgendwelche Werte setzt. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16);
mh keiner von Filtern ändert irgendwas für mich sichtbares , habe immernoch hässliche Kanten.. Ich habe auch gerade entteckt, das meine Szene insgesamt dunkler wird, wenn ich das Fenster (quad) kleiner wird als die FBO-Textur..?
daran hab ich noch garnichts gedreht, ist alles gleichgroß.
Wie kann den das Fenster kleiner werden als die FBO-Textur wenn du nichts geändert hast?
Dein Screenshot sieht aus als hättest du die Geometrie der Szene mit halber Auflösung gerendert. Hä? Dein Problem sind nicht irgendwelche Filtereinstellungen, sondern da entspricht irgendwo die Viewport-Einstellung nicht der tatsächlichen Viewportgröße. Hast du die Normale Szene in einen FBO gerendert der nicht genau die Größe des Fensters hat?
daran hab ich noch garnichts gedreht, ist alles gleichgroß.
Wie kann den das Fenster kleiner werden als die FBO-Textur wenn du nichts geändert hast?
Dein Screenshot sieht aus als hättest du die Geometrie der Szene mit halber Auflösung gerendert. Hä? Dein Problem sind nicht irgendwelche Filtereinstellungen, sondern da entspricht irgendwo die Viewport-Einstellung nicht der tatsächlichen Viewportgröße. Hast du die Normale Szene in einen FBO gerendert der nicht genau die Größe des Fensters hat?
Genau. Das war auch meine Absicht, zwecks Performance. Aber ich hab nicht mit solcher Kantenbildung gerechnet. Ich habe das FBO aktuell auf 500x500 (fixiert) und das Fenster war hier 871x538.. Wenn ich nun das Fenster kleiner mache als 500x500 wird die ganze Szene dunkler und das kann ich mir irgendwie nicht erklären..
Genau. Das war auch meine Absicht, zwecks Performance. Aber ich hab nicht mit solcher Kantenbildung gerechnet.
Bei dem Bild das sowieso geblurt wird kannst du das machen. Das war ja auch mein Vorschlag. Aber bei einem normalen Bild ist doch klar das da die Pixel (und damit auch die harten Kanten) hoch skaliert werden.
Zitat:
Wenn ich nun das Fenster kleiner mache als 500x500 wird die ganze Szene dunkler und das kann ich mir irgendwie nicht erklären..
Genau. Das war auch meine Absicht, zwecks Performance. Aber ich hab nicht mit solcher Kantenbildung gerechnet.
Bei dem Bild das sowieso geblurt wird kannst du das machen. Das war ja auch mein Vorschlag. Aber bei einem normalen Bild ist doch klar das da die Pixel (und damit auch die harten Kanten) hoch skaliert werden.
Zitat:
Wenn ich nun das Fenster kleiner mache als 500x500 wird die ganze Szene dunkler und das kann ich mir irgendwie nicht erklären..
kA, was da passiert.
Ja aber dachte das es da irgendeine möglichkeit gibt das ein wenig Softer zu machen.. Wenn ich im Photoshop ein bild vergrössere hab ich hab auch nicht solche Kanten. Schon garnicht von 500 > 800 Pixel.. Das da dann irgendwann was unscharf wird ist mir klar.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.