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

Aktuelle Zeit: Mi Mai 22, 2024 06:23

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Spiegelung erzeugen?
BeitragVerfasst: Di Jun 26, 2012 19:43 
Offline
DGL Member

Registriert: Mi Mai 23, 2012 08:09
Beiträge: 32
Wohnort: Karlsruhe
Programmiersprache: FreeBASIC
Ich wollte mal fragen welche Möglichkeiten sich einem bieten um Spiegelungen zu erzeugen?
Einsetzen wollte ich das ganze gern als Wasserspiegelung (ebene flächen).

Ausprobiert (oder rumgespielt) habe ich mal mit diesem Tutorial_Renderpass welches ansich schon ganz gut funktioniert, wobei ich noch ein theoretisches problem habe, wenn ich (angenommen) meine szene für die spiegelung, von der aktuellen kameraposition von unten nach oben render (bei eingeschalteten cull face) wie ich dann die textur anständig auf die darzustellende Wasserfläche 'mappe'
Ausserdem reduziert ein weiterer Renderpass die FPS logischerweise um fast die hälfte...

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Spiegelung erzeugen?
BeitragVerfasst: Di Jun 26, 2012 21:46 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Gibt da sicher viele Möglichkeiten das zu optimieren.
Das resultierende Bild der Spiegelung wird ja vermutlich durch Wellen verzerrt.
Dann kann man die Auflösung der Spiegelung verkleinern.
Weniger Details rendern: z.B. Bei der Landschaft könnte man weniger Polygone rendern. Anstelle von 3D-Bäumen kann man Billboards rendern.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Spiegelung erzeugen?
BeitragVerfasst: Mi Jun 27, 2012 07:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
naja deine Wasseroberfläche ist ja in der Regel immer auf einer einzigen Ebene, von daher sollten die Texturkoordinaten
kein Problem werden wenn du dir einfach ein Rechteck um dein Wasserpolygon auf der gleichen Ebene denkst. :)

Fürs rendering kannst du zusätzlich noch die FPS fürs Wasser reduzieren,z.B. über FBOs, da du ja wahrscheinlich noch
Wellen,Bumpmapping,etc. haben willst fallen da selbst Werte um 15 FPS nicht weiter auf :)

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Spiegelung erzeugen?
BeitragVerfasst: Mi Jun 27, 2012 14:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Tutorial_Wassereffekt gelesen?

grüße

_________________
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  
 Betreff des Beitrags: Re: Spiegelung erzeugen?
BeitragVerfasst: Mi Jun 27, 2012 15:52 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
yunharla hat geschrieben:
Fürs rendering kannst du zusätzlich noch die FPS fürs Wasser reduzieren,z.B. über FBOs, da du ja wahrscheinlich noch
Wellen,Bumpmapping,etc. haben willst fallen da selbst Werte um 15 FPS nicht weiter auf :)

Oh doch das fällt auf - mir jedenfalls. Diesen "Trick" finde ich genau so störend wie fehlendes Antialiasing. Das schlimmste ist, dass er dazu führt, dass die Framerate weniger konstant ist. Die Frames, in denen zusätzlich zum Hauptbild das Spiegelbild aktualisiert werden, dauern länger. Bei einem Strategiespiel mag das nicht weiter schlimm sein, aber bei schnellen Verfolgungsjagden mit Rennautos z.B., ist das sehr störend. Also nur mit Bedacht einsetzen!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Spiegelung erzeugen?
BeitragVerfasst: Mi Jun 27, 2012 16:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
mrtrain hat geschrieben:
Die Frames, in denen zusätzlich zum Hauptbild das Spiegelbild aktualisiert werden, dauern länger. Bei einem Strategiespiel mag das nicht weiter schlimm sein, aber bei schnellen Verfolgungsjagden mit Rennautos z.B., ist das sehr störend. Also nur mit Bedacht einsetzen!

Gerade bei schnellen Verfolgungsjagden fällts aber nicht auf, zumindest wenn die Spiegelung in der Umgebung ist. Und man kann die berechnung mit Viewport-Einschränkungen ja geschickt verteilen, sodass sie über zwei Frames versetzt läuft. Gegebenenfalls den alten Physik-Zustand im Speicher halten um kein VSync-Artiges verhalten in der Reflektion zu haben. Aber das so über z.B. alle zwei Frames zu verteilen merkt keiner, wenn er nicht genau nach dem Fehler sucht, wenn in der Reflektion zeitvariante Verzerrung drin ist.

grüße

_________________
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  
 Betreff des Beitrags: Re: Spiegelung erzeugen?
BeitragVerfasst: Mi Jun 27, 2012 18:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Naja bei TES störts mich nicht... und da ich Full HD zocke ... :)
muss jeder selbst wissen... btw kannst du ja das ganze so optimieren
das sie sich aktualisiert wenn etwas im "Blickfeld" ändert :P

_________________
Meine Homepage


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 » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.008s | 14 Queries | GZIP : On ]