Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 14, 2025 13:55

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Gerenderte Szene mehrmals ins FBO?
BeitragVerfasst: Mi Feb 08, 2012 00:35 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Hallo,

Ich würde gerne folgende Sache machen:
Szene Rendern => Bild in FBO
Projections-Matrix ändern => Bild in FBO
Projections-Matrix ändern => Bild in FBO

So läuft es allerdings leider ab:
Szene Rendern => Bild in FBO
Projections-Matrix ändern => Szene Rendern => Bild in FBO
Projections-Matrix ändern => Szene Rendern => Bild in FBO

Allerdings müsste ich bei mir dann 3mal die Szene neu rendern lassen, eben für jedes FBO!
Kann ich die Szene nicht nur 1mal rendern und dann für alle FBO's verwenden? Wäre bestimmt etwas performanter!


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Feb 08, 2012 01:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
kurz und knapp, nein ^^

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Feb 08, 2012 08:40 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Um das mal auszuführen. Beim Rendern passiert ja folgendes:

Die Grafikkarte nimmt deine Vertices, multipliziert die an die Matrizen ran, nimmt sich die Koordinaten die dabei rauskommen und rastert die auf den Bildschirm bzw das FBO (an das Raster, das durch die Pixel vorgegeben wird).
Der einzige Schritt, der also unberührt von der Änderung der Matrizen bleibt, ist das übergeben der Vertices und setzen der States. Das kannst du mit VBOs bzw DisplayListen so weit wie es geht optimieren. Alles danach hängt halt wieder von der Projektion ab, da kommst du mit keiner mir bekannten Technik drumherum.

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Feb 08, 2012 10:19 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Hm Schade! Ist halt wirklich nur ein krasser Performanceverlust, wenn ich beim Wasser Refract/Reflect rendere, dann noch mehrere ShadowMaps... naja :?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Feb 08, 2012 10:40 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
AMD hat geschrieben:
Hm Schade! Ist halt wirklich nur ein krasser Performanceverlust, wenn ich beim Wasser Refract/Reflect rendere, dann noch mehrere ShadowMaps... naja :?

Naja, da musst du Techniken wie Level-of-Detail, Frustum Culling etc. anwenden, um den Aufwand zu minimieren.

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Feb 08, 2012 10:41 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
AMD hat geschrieben:
Hm Schade! Ist halt wirklich nur ein krasser Performanceverlust, wenn ich beim Wasser Refract/Reflect rendere, dann noch mehrere ShadowMaps... naja :?


Je nachdem wie deine Szene aufgebaut ist kannst du solche Probleme "wegcheaten". Nimm z.B. mal das Spiel Doom. Hier gibt es keine Räume über Räumen und die Kamera kann keine z-Rotation. Daher dürfte man hier die Reflektion von Wasser als reinen Post Processing Effekt laufen lassen. Das sieht dann in etwa so aus:
Bild

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Feb 08, 2012 12:18 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Okay, auch eine Möglichkeit! Das sollte helfen!

Level-of-Detail, Frustum Culling ist auch schon integriert, hilft natürlich auch schon sehr gut aber letztendlich kostet jeder Renderdurchgang Leistung ^^


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 17 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
[ Time : 0.010s | 16 Queries | GZIP : On ]