Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Moin.
Ich stehe schon wieder vor einem Problem. Ich hab jetzt laut Wassertutorial alles schön implementiert, teilweise verändert, und auch versucht, das "Feintuning" anzuwenden, jedoch ohne Erfolg. Wer sich das Bild hier anguggt, sieht, was ich meine: Die Kanten da an der Grenze zum Land und den unteren Rand im Bild.
Da ich mein Wasser senkrecht zur Y-Achse immer auf Ebene 0 habe, habe ich den Depth-Fragmentshader mal angepasst, aber ich denke, hier liegt der Fehler:
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Probleme gelöst:
Die Kante war weg, nachdem ich das Wasser um 0.01 nach oben gesetzt und das Backface Culling ausgeschaltet habe. Letzteres ist recht performant, denn es braucht keine weiteren Renderpasses.
Und der Rand unten war nach der Angabe von GL_TEXTURE_WRAP_S und GL_TEXTURE_WRAP_T auf GL_CLAMP_TO_EDGE für die beiden Wassertexturen auch weg.
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
refraktion kann das ding wohl, man sieht es nur gerade wegen der (tatsaechlich zu starken) reflexion nicht.
Bild Das Problem ist: Die Refraktion sollte eigentlich von der Höhe der Objekte abhängig sein, aber das hab ich bisher noch nicht hinbekommen (er schreibt nichts lesbares in den depth buffer?)
btw, diese Autoplants fressen ne Menge Ressourcen, wenn die im Wasser reflektieren und die Textur zu groß eingestellt ist [/code]
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Hast du den Renderpass mit dem Depth-Shader mit eingebracht (Tutorialabschnitt Feintuning)?
Gruß Lord Horazont
_________________ 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: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Ich habe einfach das Feintuning untergebracht und es funktioniert so weit. Bild Der eine neue Renderpass frisst nur reichlich Performance. Dabei wird nur das Terrain mit Himmel neu gezeichnet, so, wie es nötig ist.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Sind die Hügel unterwasse? Wenn ja: Coool!
Noch eine möglichkeit es zu verbessern wären Tiefenzonen im Wassen. Also je tiefer etwas unten ist, desto weniger sieht man davon. Das könnte durch den Shader und eine Abstandsfunktion gelöst werden. Falls der Shader das nicht direkt kann, musst du eine Tiefenmap in eine Texturrendern und kannst die dann benutzen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Das mit den Tiefenzonen habe ich im Grunde schon implementiert, man sieht es eigentlich auf dem Bild auch etwas. Anderes Bild Da muss ich aber noch an den Werten rumfummeln, das sieht noch recht komisch aus.
Ein weiterer Grund fuer das komische Aussehen ist die Tatsache, dass das ganze Terrain bisher nur zufällig generiert wird.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Sieht schon recht schick aus.
Momentan fehlt (neben den Grasbüscheln) noch was andem sich das Auge festhalten kann.
Generier doch noch paar Felsbrocken (eher flache) und leg sie zufällig auf der Karte ab (bevorzugt aber in tiefen regionen, so dass da unterwasser bisl Action passiert.
Und dann noch paar Bäume und schon hast du eine richtig schöne Landschaftsdemo - und wir ein Image Of the Week.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Nunja, das passt aber nicht zu meinem Vorhaben. Das Terrain wird zwar rein zufällig generiert, aber ich habe vor, ein richtiges Spiel zu machen. Der Vorschlag ist zwar vielleicht nicht schlecht, aber passt nu wirklich mal so gar nicht xD
Ausserdem hab ich noch unerklaerlicherweise schwarze streifen rund ums terrain herum, die wollen auch weggemacht werden
Nunja, das passt aber nicht zu meinem Vorhaben. Das Terrain wird zwar rein zufällig generiert, aber ich habe vor, ein richtiges Spiel zu machen. Der Vorschlag ist zwar vielleicht nicht schlecht, aber passt nu wirklich mal so gar nicht xD Ausserdem hab ich noch unerklaerlicherweise schwarze streifen rund ums terrain herum, die wollen auch weggemacht werden
Stimmt die angabe auf den screenshots vonwegen 18, bzw 30fps? Wenn ja solltest du da nochmal etwas optimieren.. die scene sollte eigentlich viel viel mehr fps hergeben (kommt natürlich auch auf die GraKa an..)
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Wenn ich Compiz deaktiviere, hab ich bei den Einstellungen um die 50fps auf meiner GeForce 7300LE (welche unter Anderem einen extrem lahmarschigen Shadertakt hat), die Screenshotfunktion von Gnome zieht das ganze aber trotzdem runter. Mal was technisches:
Er rendert bisher:
-3x bis zu 28800 Dreiecke mit Textur für das Terrain über 64 Displaylisten (FrustumCulling holt da aber einiges raus) mit jeweils einer 512x512-Textur (wegen Texturüberblendung, dynamisch wäre die einfach zu lahm) + 520 für den Himmel (480 in Displayliste, die anderen 40 werden noch zu dynamisch)
-1x dieselben Dreiecke ohne Texturen
-2x bis zu 150000 Dreiecke für die dynamischen Autoplants mit Textur über ein VBO (weder toll optimiert noch toll optimierbar, jedoch werden überflüssige Pflanzen (z.b. unter Wasser) verworfen), ganz ohne die habe ich um die 90fps
-2 Dreiecke für das Wasser mit dem erst im letzten Bild recht flotten Shader (Texture-lookups...)
-Die FPS-Anzeige, die btw auch einen Shader hat
Das zwingt meine Karte schon in die Knie. Vor allem das Übertragen der Autoplants alle paar Frames (wenn der Thread, der sie generiert, fertig ist) kostet Zeit.
Zugegeben, es ist nicht besonders performant, aber ich arbeite sehr nah an der GL-API (keine fremden Texturloader, keine fremden Modelloader, keine fremden Helferlein hier und da), mehr kriege ich leider aus dem Ding bei halbwegs anständigen Grafikeinstellungen nicht raus
Zuletzt geändert von Ireyon am Sa Jan 03, 2009 18:40, insgesamt 1-mal geändert.
Mitglieder in diesem Forum: 0 Mitglieder und 12 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.