- varying vec4 vpos;
- varying vec4 ppos;
- void main(void)
- {
- float y, z;
- y = -vpos.y;
- z = ppos.y;
- gl_FragColor = vec4(z, z, z, y);
- }
DGL https://delphigl.com/forum/ |
|
Wasser und die Kante https://delphigl.com/forum/viewtopic.php?f=20&t=8072 |
Seite 1 von 3 |
Autor: | Ireyon [ Mo Dez 29, 2008 04:32 ] |
Betreff des Beitrags: | Wasser und die Kante |
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: Code:
Weiß jemand Bescheid? MfG Ireyon |
Autor: | Ireyon [ Di Dez 30, 2008 00:59 ] |
Betreff des Beitrags: | |
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. Bild |
Autor: | Flash [ Di Dez 30, 2008 17:50 ] |
Betreff des Beitrags: | |
Du solltest vielleicht noch die Reflexion etwas abschwächen. Momentan spiegelt es ziemlich stark. (Geht in die Richtung Quecksilber) Und wenn der Untergrund im Wasser was hergibt, dann natürlich noch transparent. Dann wird da richtig schönes Wasser draus. ![]() |
Autor: | Ireyon [ Do Jan 01, 2009 22:19 ] |
Betreff des Beitrags: | |
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 ![]() |
Autor: | Lord Horazont [ Fr Jan 02, 2009 16:10 ] |
Betreff des Beitrags: | |
Hast du den Renderpass mit dem Depth-Shader mit eingebracht (Tutorialabschnitt Feintuning)? Gruß Lord Horazont |
Autor: | Flash [ Fr Jan 02, 2009 17:34 ] |
Betreff des Beitrags: | |
Auf dem letzten Bild kann man im Wasser Streifen erkennen. Dort scheint die Kreuselung zu gleichmäßig zu sein. |
Autor: | Schläfer [ Fr Jan 02, 2009 17:37 ] |
Betreff des Beitrags: | |
Hier ist auch ein Thread von jemandem der Probleme mit dem Alphakanal für seine Texturen hatte, falls es daran liegen sollte: http://www.delphigl.com/forum/viewtopic.php?t=8012 Falls nicht auch egal, dann ließt es vllt wenigstens Lord Horazont, weil ich denke das man es zumindest in dem Tutorial anmerken sollte. |
Autor: | Ireyon [ Fr Jan 02, 2009 22:28 ] |
Betreff des Beitrags: | |
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. |
Autor: | Flash [ Fr Jan 02, 2009 23:00 ] |
Betreff des Beitrags: | |
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. |
Autor: | Ireyon [ Fr Jan 02, 2009 23:25 ] |
Betreff des Beitrags: | |
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. Flash hat geschrieben: Sind die Hügel unterwasse? Wenn ja: Coool!
Ja. |
Autor: | Flash [ Fr Jan 02, 2009 23:39 ] |
Betreff des Beitrags: | |
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. ![]() |
Autor: | Ireyon [ Fr Jan 02, 2009 23:46 ] |
Betreff des Beitrags: | |
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 ![]() |
Autor: | Aya [ Sa Jan 03, 2009 00:45 ] |
Betreff des Beitrags: | |
Ireyon hat geschrieben: 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..) Aya~ |
Autor: | Ireyon [ Sa Jan 03, 2009 01:23 ] |
Betreff des Beitrags: | |
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 ![]() |
Autor: | Andreas [ Sa Jan 03, 2009 11:27 ] |
Betreff des Beitrags: | |
>> ... Displaylisten ... Wären VBO nicht noch schneller? |
Seite 1 von 3 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |