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

Aktuelle Zeit: Mo Jul 21, 2025 08:08

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



Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glsl-Wasser
BeitragVerfasst: Di Mai 11, 2004 18:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hab mich mal wieder ein wenig mit glsl beschäftigt und ein kleines Szenario mit ner Wasserfläche die über Shader reflektiert gebastelt (der Shader basiert auf nem Shader aus dem aktuellen Rendermonkey) und wollte mal so wissen wie die Performance der Szene bei anderen Leuten (v.a. NVidia) aussieht. Im Fenstermodus gehts bei mir noch mit knapp ~225FpS, aber maximiert sinds nur ~70FpS was leider recht wenig ist. Hab auch testweise noch nen zweiten Shader eingebaut der etwas performanter ist, aber trotzdem nicht die Leistungsrakete. Steuerung ist wie folgt : Bei gedrückter Maustaste kann man sich umsehen, Mausrad zoomt, +/- steuern den Alphawert der Wasserfläche und mit w kann man zwischen den beiden Wassershadern umschalten.

Download (ZIP, ohne Source, knapp 2,1 MByte)

Noch anbei zwei Screenshots :
Bild Bild

Dank geht übrigens noch an Mars für den DDS-Loader, den hab ich etwas modifiziert damit ich ne 3D-Noise-Textur aus ner DDS-Datei laden kann. Muss ich ja, denn Noise kann die Radeon9700 ja leider nicht in Hardware.

P.S. : Würde mich interessieren ob (Lars Implementation hab ich ja bereits gesehen *lechz*) schon jemand anderes mit glslang reflektierendes Wasser realisiert hat und v.a. wie er das gemacht hat. Wie gesagt realisiere ich die Wellen auf dem Wasser über Noise (via nem Lookup in ner 3D-Noisetextur) und eigentlich habe ich gedacht das die Performance besser wäre.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 11, 2004 18:32 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
GFFX 5600 Pro, VSync ausgeschaltet:
Standardfenster: 60FpS
1280x1024: 23 FpS

Bez. DDS Loader: könntest du den geänderten Source (mit 3D-Texturenunterstützung) auch online stellen - dann kann ich meine Version damit abgleichen :wink: .
Wäre irgendwo ohnehin nicht schlecht, wenn man auf DelphiGL eine Sektion mit nützlichen Codeschnippseln aufbauen könnte (vielleicht auch als Teil des Forums).

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 11, 2004 18:49 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Radeon 9800 Pro
800*600 kein AF, kein AA
spiegelndes Wasser: ca 280 FPS
blaues Wasser: ca 210 FPS

Ich scrolle nur die Normalmap. Da das Wasser dank z correct Bumpmapping zwischen den Bumps herfließt, sieht man wie sich in Bewegung die Kante zwischen Wasser und Boden verändert. Auch auf dem 2. Bild ist das Wasser eigentlich in Bewegung. An Stelle der Cubemap benutze ich planare Reflektion und rendere die Reflektion und das was unter dem Wasser ist in eine Texture, die dann anhand des Fresnel Wertes überblendet werden.

Es kann sein, daß die Helligkeit der Bilder nicht auf jedem Monitor richtig angezeigt wird.

www.3d-seite.de/bild7.jpg
www.3d-seite.de/bild4.jpg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 12, 2004 19:12 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Radeon 9800 pro 256, 2.4Ghz Intel, 768MB Ram

Normal:
Blaues Wasser: ~340 FPS
Spiegelndes Wasser: ~410 FPS

Vergrößert auf 1280x1024
Blaues Wasser: ~100 FPS
Spiegelndes Wasser: ~125 FPS

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 12, 2004 21:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Code:
  1. One of the following extensions needed to run the demo isn't offered by your Card:
  2. - GL_ARB_Shader_Objects
  3. - GL_ARB_Vertex_Shader
  4. - GL_ARB_Fragment_Shader
  5. - GL_ARB_Shading_Language_100
  6.  

Ihr fragt euch bestimmt, was will ich mit ner GF 4MX noch hier :-(

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 12, 2004 21:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Tja, wie gesagt lieber ein wenig bei der CPU sparen aber dafür dann ne passende GPU kaufen. Die 299€ die ich vor über nem Jahr für meine Radeon9700 bezahlt habe waren definitiv gut angelegt, und da sich das Ding (Hercules halt) noch brachial übertakten lässt (100Mhz mehr GPU-Takt geht ohne Grafikfehler, mehr kann man im Overclockingtool nicht einstellen) wird sie mir wohl auch noch ein paar Monate länger den Dienst erweisen dürfen.

Das Ergebnis der GeForceFX5600 scheint mal wieder zu bestätigen das die Karten zwar PS2.0 können, das aber auch eher ein Marketingfeature ist, denn 60FpS im Fenster sind nicht grade der bringer. Liefs dafür denn wenigstens ohne erkennbare Bildfehler?

@Lars :
Besonders Bild 7 sieht mal wieder verdammt gut aus...wenns nicht bald ne Demo gibt setzts Prügel ;)

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 11:00 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Ja, beide Shader schauen korrekt (und gut) aus - der "nur spiegelnde" Shader ist etwas schneller (80 bzw. 30 FpS). Man merkt auch gut, dass wirklich die Shader herbremsen, als die Framerate spürbar in die Höhe geht, wenn nur ein Teil der Wasseroberfläche sichtbar ist.

GLSL dürfte ohnehin erst mit der nächsten oder übernächsten Grafikkartengeneration wirklich wichtig werden, sodass ich schon zufrieden bin, mit einer <150 Euro Karte überhaupt schon mit GLSL herumspielen zu können - zur Zeit scheinen ohnehin die ARB_x_PROGRAM Erweiterungen sowohl weiter verbreitet zu sein, als auch stabiler zu laufen.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 16:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hab mal ne aktualisierte Version hochgeladen (nur Exe, 280KByte) in der jetzt neben Vollbild auch ne Benchmarkfunktion eingebaut ist. Mittels 'd' wird diese gestartet, geht beide Shader durch und zeigt dann das Ergebnis an. Mir ist dabei übrigens aufgefallen das AA und AF doch performancetechnisch stärker ins Gewicht fallen als erwartet, zumal Radeonkarten da traditionell nicht so stark drunter leiden wie NV-Karten. Für alle dies interessiert hier nen paar Ergebnisse von meiner Radeon9700 (alle im Fenstermodus) :

(links : Standard-GPU-Takt 275Mhz, 4xAA und 16xAF, rechts : Standard-GPU-Takt 275Mhz ohne AA und ohne AF)
Bild Bild

(links : GPU-Takt 330Mhz, 4xAA und 16xAF, rechts : Standard-GPU-Takt 330Mhzohne AA und ohne AF)
Bild Bild

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 16:57 
Offline
DGL Member

Registriert: Do Mai 13, 2004 16:36
Beiträge: 116
Wohnort: Deutsch-Wagram (Österreich)
~->GEF<-~ Adler hat geschrieben:
Code:
  1. One of the following extensions needed to run the demo isn't offered by your Card:
  2. - GL_ARB_Shader_Objects
  3. - GL_ARB_Vertex_Shader
  4. - GL_ARB_Fragment_Shader
  5. - GL_ARB_Shading_Language_100
  6.  

Ihr fragt euch bestimmt, was will ich mit ner GF 4MX noch hier :-(
Ich bekomme den selben Fehler, habe aber eine GF FX 5950... und Treiber ForceWare 56.irgenwas...

_________________
Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)


Zuletzt geändert von @uzingLG am Fr Mai 14, 2004 18:33, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 17:05 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Bei den aktuellen Treiber von NVidia ist die glSlang-Unterstützung noch nicht offiziel. D.h. das man diese erst über einen Registry-Hack aktivieren muss um diese nutzen zu können.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 17:13 
Offline
DGL Member

Registriert: Do Mai 13, 2004 16:36
Beiträge: 116
Wohnort: Deutsch-Wagram (Österreich)
Ich hab mal die Suche gefragt und bin auf deine Anleitung gestoßen.
Aber bei mir gibts in "Global" kein "OpenGl". Muss ich den Ordner erst erstellen?

[EDIT]Das hat funktioniert.
Fenster, beide Shader: 60 FPS
Maximiert, beide Shader: 30 FPS[/EDIT]

_________________
Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)


Zuletzt geändert von @uzingLG am Fr Mai 14, 2004 18:33, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 17:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Du hast sicher den VSync aktiviert, oder? Denn die Frameraten sind für so ne High-End-Karte doch erschreckend gering. Kannste das bitte auch mal ohne VSync probieren und auch sagen ob das Wasser korrekt aussieht?

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 13, 2004 18:08 
Offline
DGL Member

Registriert: Do Mai 13, 2004 16:36
Beiträge: 116
Wohnort: Deutsch-Wagram (Österreich)
Window-Mode:
--> Wasser blau: 195 - 240 FPS
--> Wasser schwarz: 250-264 FPS
Maximiert (2048x1536x32)
--> Wasser blau: 25-30 FPS
--> Wasser schwarz: 40-41 FPS

_________________
Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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 | 15 Queries | GZIP : On ]