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

Aktuelle Zeit: So Jul 06, 2025 17:02

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



Ein neues Thema erstellen Auf das Thema antworten  [ 33 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Wasser und die Kante
BeitragVerfasst: Mo Dez 29, 2008 04:32 
Offline
DGL Member

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:
Code:
  1. varying vec4 vpos;
  2. varying vec4 ppos;
  3.  
  4. void main(void)
  5. {
  6.   float y, z;
  7.   y = -vpos.y;
  8.   z = ppos.y;
  9.   gl_FragColor = vec4(z, z, z, y);
  10. }


Weiß jemand Bescheid?
MfG
Ireyon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 30, 2008 00:59 
Offline
DGL Member

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.

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 30, 2008 17:50 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
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. ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 01, 2009 22:19 
Offline
DGL Member

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 :D[/code]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2009 16:10 
Offline
DGL Member
Benutzeravatar

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 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:
BeitragVerfasst: Fr Jan 02, 2009 17:34 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Auf dem letzten Bild kann man im Wasser Streifen erkennen. Dort scheint die Kreuselung zu gleichmäßig zu sein.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2009 17:37 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2009 22:28 
Offline
DGL Member

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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2009 23:00 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2009 23:25 
Offline
DGL Member

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.

Flash hat geschrieben:
Sind die Hügel unterwasse? Wenn ja: Coool!

Ja.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2009 23:39 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 02, 2009 23:46 
Offline
DGL Member

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 ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 03, 2009 00:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
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~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 03, 2009 01:23 
Offline
DGL Member

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.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 03, 2009 11:27 
Offline
DGL Member

Registriert: Sa Aug 09, 2008 09:07
Beiträge: 112
>> ... Displaylisten ...

Wären VBO nicht noch schneller?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 33 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Foren-Übersicht » Programmierung » Shader


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 16 Queries | GZIP : On ]