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!
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 network • my 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
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 network • my 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
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:
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 ^^
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.