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

Aktuelle Zeit: Di Mär 19, 2024 03:06

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Fluid Sandbox
BeitragVerfasst: Mo Okt 24, 2011 17:07 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Hallo Leute,

ich habe nach langer Zeit ein neues Projekt für euch.
Nämlich eine PhysX Fluid Simulation die über OpenGL dargestellt wird :)

PhysX ist eine Physik Engine von NVIDIA und unterstützt Rigid Body Dynamics, Fluid Simulation und etliches mehr.
Das SDK ist komplett in C++ geschrieben und kommt ursprünglich von der NVIDIA übernommenen Firma Ageia, bei der PhysX das als reine Hardwarelösung (PPU) gedacht war.

Die Anwendung umfasst Rigid Body Dynamics mit statischen sowie dynamischen Objekten (Cube, Sphere, Capsule) mit aufwendiger Fluid Particles integration, die zur Laufzeit erzeugt werden können.
Sie umfalls außerdem mehrere Flüssigkeitsszenarien die über XML Dateien definiert sind und sehr einfach um weitere Erweitert werden können.

Es gibt neben 4 Flüssigkeitstypen (Drop, Wall, Cube, Sphere) noch Flüssigkeitserzeuger (Emitter) und Flüssigkeitsabflüssen (Drain) die ebenfalls in den Szenarien definiert werden.

Die Flüssigkeiten sollen Wasser simulieren, daher sind auch alle Eigenschaften wie z.b. Viskosität und Steifheit sehr niedrig eingestellt.
Womöglich ist das noch nicht so optimal, daher sind diese Werte auch in einer XML Scene Datei definiert und können beliebig geändert werden.
Allerdings muss man hier aufpassen, denn falsche Werte können zum Absturz der Anwendung führen.

Damit das ganze auch nach was aussieht, werden die Flüssigkeiten über die Technik: Screen Space Fluid Rendering dargestellt und können zur Laufzeit angepasst und gewechselt werden.

Aber am einfachsten ist es wenn ihr die demo einfach ausprobiert und feedback gibt.
Über feedback würde ich mich freuen, vor allem interessiert es mich auf welchen Systemen und welchen GPU´s die Anwendung läuft.

Steuerung:
- Linke Maustaste gedrückt, Kamera drehen
- Rechte Maustaste gedrückt, Kamera Zoom
- L, Szenario wechseln
- R, Scene zurücksetzten
- Space, Actor fallen lassen
- 1-7 Actor auswählen (4-7 = Fluid types)
- H, GPU Beschleunigung an/aus
- W, Wireframe toggling
- B, Bounding boxen zeichnen
- D, Rigid bodies zeichnen
- S, Fluid Rendermodis durchschalten
- P, Fluid detaillevel ändern von 100% - 25% (Verringert einfach die FBO Größe)
- C, Fluid farbe ändern
- O, Pause
- K, Emitter ein/ausschalten
- T, OSD ein/ausschalten
- Q, Simulation Timing beeinflussen
- V, Fluid Eigenschaften durchschalten die mit + und - geändert werden können
- M, Fluid partikel blur an/aus
- Pfeiltasten, Kurzzeitige Beschleunigung für Fluid in die jeweilige Richtung

Download (Win32, benötigt womöglich Shader Model 3.0, Ich empfehle eine NVIDIA Karte der Generation 8 oder höher)
Fluid Sandbox 1.7.7

Wichtig: Ihr braucht das redist von VC++ 2010: http://www.microsoft.com/downloads/de-de/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84&displayLang=de

Hier ein paar screenshots der Anwendung:

Bild
Bild

Falls es bei euch nicht läuft, hier ist auch ein Video:
http://www.youtube.com/watch?v=tBPAfZa6FIE&feature=youtu.be

Nun zur Technik:

Geschrieben ist das ganze in VC++ 2010 und den folgenden libs:

- PhysX SDK 3.3 für PC
- FreeGlut
- FreeImage
- Glew
- glm

Nutzt folgende Techniken:

- Frustum Culling
- Vertex Buffer Object
- Frame Buffer Object
- Spherical Point Sprites
- Screen Space Fluid Rendering
- Directional Lighting
- GLSL

Was ich noch daran verbessern will:

- Komplett rewrite

Gruß,
Final


Zuletzt geändert von Finalspace am Mo Dez 23, 2013 14:07, insgesamt 21-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PhysX Fluid Simulation
BeitragVerfasst: Mi Okt 26, 2011 19:06 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Es gibt eine neue Version, die einen Performanceschub von mind. 50% bringen sollte.
Das Rendern der Fluidpartikel wurde umgestellt auf "Spherical Point Sprites", welches übrigens auch der erste Schritt ist SPH Wasser Rendering zu implementieren.

Schaffe damit knapp 60 fps in den ersten 2 Szenarien :D

Downloadlink von ersten post ist aktuallisiert.

Nebenbei, ich habe das SDK 3.1 getestet und bisher scheint es schlechter zu laufen als 3.0.2.
Fast Halbe Performance weniger in dieser Fluid demo trotz GPU Beschleunigung und komischerweise hat sich das Wasser anderst verhalten mit den gleichen einstellungen :( Und es gibt noch etliche Probleme beim Kompilieren.... Fazit: Ich bleib erstmal bei 3.0.2.

Was ich noch in den griff muss ist die Physik Performance Schwankungen die wohl durch gScene->simulate(1.0f / 60.0f); gScene->fetchResults(true); ausgelöst werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PhysX Fluid Simulation
BeitragVerfasst: Do Nov 03, 2011 20:07 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Es gibt gute Neuigkeiten, zumindest aus meiner sicht.

Ich habe es geschafft, Screen Space Fluid Rendering zu implementieren und schreib nun einige codeteile um damit
es einheitlicher und einfacher ist Post Processing Effekte zu realisieren. Vor allem möchte ich das ganze mehr OpenGL 3.x Konform haben indem ich sämtliche Matrix Befehle ersetzte.

Sobald ich damit fertig bin, gibts ne neue Version die dann auch besser läuft.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PhysX Fluid Simulation
BeitragVerfasst: Di Nov 08, 2011 14:24 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Screen Space Fluid Rendering ist implementiert.
Jetzt sieht es mehr nach "Flüssigkeit" aus. Zwar noch nicht nach Wasser, da fehlt noch die Transparenz aber schon wesentlich besser.

Da das ganze recht GPU lastig ist, habe ich Detailstufen eingebaut, bei dem das FBO in der Größe zur laufzeit verkleinert kann.

Es gibt auch neue zusätzliche Shortcuts, sind im ersten Post beschrieben.

Bitte probiert die Demo mal aus und postet feedback.
Würde gerne wissen wie das bei euch läuft.

Bei mir wenn ich die Anwendung starte dann läufts mit knapp 30 fps, pack ich nochmal ein block partikel dazu, dann sinds weniger als 20 fps. (GTX 580M)

Download Link ist oben.

Hier ein Bild:

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Di Mär 06, 2012 17:26 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Es gibt eine neue Version der PhysX Fluid Simulation demo - unbennant in Fluid Sandbox.
Habe einiges an Zeit investiert um das Wasser schöner zu machen =)

Bild
Es sieht nun richtig gut, durchsichtig mit Farbe oder einfach nur Klar.

Habe ebenfalls alle Shader überarbeitet und optimiert wo es nur geht. (Doppelte Performance)

Das ist noch nicht alles, man kann nun ziemlich viel über XML Dateien konfigurieren.
Man kann auch eigene Szenarien bauen die im XML Format abgelegt werden und diese dann ausprobieren.

In den Szenarien XMLs kann man unlimitiert
- Statische oder Dynamische Aktoren (Würfel, Kugel) mit entsprechenden Eigenschaften einbauen
- Fluid partikel (Blob, Wall, Drop) mit entsprechenden Eigenschaften einbauen

In der Szene XML kann man die Fluid farben verändern und neue hinzufügen, sowie SPH Eigenschaften verändern.

und vieles weitere konfigurieren.

Im "docs" ordner liegen liegen die XML Schemas wie die XML Dateien aufgebaut ist (Alles relativ simpel).
Ich freue mich über jedes selbstgebaute Szenario das ihr mir zur verfügung stellt.
Falls ihr fragen dazu habt, einfach feedback posten.

Hier der neue Download link:
http://xenorate.com/tl_files/somekram/fluidsandbox.zip

Über feedback würde ich mich freuen.

Gruß,
Final


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Mi Mär 07, 2012 07:19 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Nachtrag:

Ich habe ein Video erstellt für alle bei denen es nicht läuft.

Werde doch nochmal versuchen die Demo auf non NVidia Rechner zum laufen zu bringen.
Hab hier noch nen I5 2500K mit Intel HD3000... das läuft da bestimmt...mit 0,1 fps.

http://www.youtube.com/watch?v=tBPAfZa6FIE&feature=youtu.be


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Mi Mär 07, 2012 08:48 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Habe mal auf die schnelle das ganze auf meinem i5 2500k laufen lassen mit der integrierten Intel HD 3000 und
es lief nachdem ich ein paar fixes in den Shadern gemacht habe :)

Lief erstaunlich gut für ne Intel GPU, gestartet und satte 7 FPS =)
Natürlich kein vergleich zu meiner GTX 580M, aber immerhin.

Daher habe ich auch gleich ne Version 1.3.1 hochgeladen, das diese fixes enthält das auch die "Weiß" Fehler beheben sollte.
Link ist der gleiche.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Fr Mär 09, 2012 20:17 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Habe eine neue Version hochgeladen.
Nutzt nun PhysX SDK 3.1.2 anstatt 3.0.1 und hat ein paar weitere szenarien bekommen.
Es gibt nun auch die möglichkeit, Aktoren zu drehen (Rotate), dadurch sind interessante sachen möglich.

Dazu habe ich noch ein paar optimierungen an den Shadern vorgenommen.

Nun kann man auch den Particle Render Factor einstellen und zur laufzeit ändern.
Dadurch kann man mit weniger Partikel auch gut aussehendes Wasser machen,
was der Performance zu gute kommt. Allerdings sind dann auch die Partikel "Fetter" :D

Probierts aus :)

(Link ist der gleiche)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: So Mär 18, 2012 16:12 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Es gibt eine neue version der Fluid Sandbox.
Diesmal mit Skybox Rendering und überarbeiteten Wasser.
Ebenso hab ich nochmal die Shader überarbeitet und konnte die Performance steigern :)

Downloadlink, siehe ersten post.

Gruß,
Final


Zuletzt geändert von Finalspace am Do Mär 22, 2012 08:06, insgesamt 3-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Mi Mär 21, 2012 23:46 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Kurz und Knapp:

Es gibt eine neue Version mit erheblicher Performanceverbesserung und Fluid Emitter/Drain.

Bitte probiert die Demo auch mal auf unterschiedlichen GPU`s aus und gebt feedback.

Bei problemen und oder fragen, einfach feedback posten.

Downloadlink, siehe ersten post.

Gruß,
Final


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Sa Mär 24, 2012 14:47 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Hohoho,

hier eine neue Version, mit nun hoffentlich funktionierendem Wasser für alle mächtigen GPU´s ^^.
Dazu gibt es wieder ein neues Szenario mit netten Fluid Emittern.
Habe auch noch an den Fluid Properties geschraubt... ob das jetzt besser ist, sei mal dahin gestellt...

Download link siehe oben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Mo Mär 26, 2012 16:02 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Bugfix für fehlerhaften clearwater shader.
Download url siehe ersten post.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Sa Jun 16, 2012 14:02 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Servus leute,

ich bin wieder zurück vom Urlaub und habe ein wenig an der Sandbox gefeilt.

Das Flüssigkeit verhält sich nun endlich wie wasser und sieht nun auch besser aus.
Ein paar bugfixes an den Shadern habe ich gemacht und man kann nun auch den Farbabfall der Wasserfarbe zur laufzeit ändern.
Habe die Anwendung auch nun auf das PhysX SDK 3.2 aktuallisiert.

Ich hoffe das ganze läuft nun überall, auf meinem Alienware Notebook läuft das auf jedenfall nun auch mit der Intel HD 3000 :)

Der nächste große schritt der Anwendung wird sein, das die Szenarios Polygon basierende Geometry nutzt anstatt Definition von Primitiven.
Wann ich das mache, weiß ich allerdings noch nicht da meine Zeit sehr sehr begrenzt ist. Ich hab ja noch nichtmal Diabo 3 durch :P
Was auch sehr wichtig ist, den Hauptperformance-Killer zu beseiten (glutBitmapCharacter durch Texture Fonts zu ersetzten).

Link ist wie immer der gleiche.

Ja und Danke für den DGL Award, das hat mich gefreut :)

Gruß,
Final


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: So Jun 17, 2012 00:06 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Woooootttt 2 Versionen an einem Tag...

Hab ne neue Version hochgeladen die einige Verbesserungen und ein neues Szenario enthält.
Der Partikelradius ist nun abhängig der Partikeldichte, sprich einzeln herumfliegende Partikel sind kleiner.
Das wirkt deutlich besser, grad beim Screen Space Fluid Rendering.

Hier ein screenshot vom neuen Szenario:
Bild

Link ist der gleiche,
Viel Spaß


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fluid Sandbox
BeitragVerfasst: Mo Jun 18, 2012 10:14 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Moin moin,

es gibt nun heute wieder eine neue version, bei der ich einiges an Feintuning gemacht habe, bzw. mich an dem PhysX Particle Sample orientiert habe was die Fluid Properties angehen. Wenn ihr Performance-Probleme habt und das werden ihr sowieso haben :D, dann schaltet das OSD ab, das bringt einen guten schub :)

Die nächste Version wird dann hoffentlich Triangle Mesh Actors enthalten, sowie Heightmaps :)

Eine Frage hätte ich aber noch an euch:

Was kann ich denn machen, damit die Geometrie, die aktuell noch keine Texturen hat (bis auf die Skybox) nicht mehr so billig aussieht?
Es gibt bisher auch nur normales Direktes Licht mit einem fest definiertem Vector.
Toll wäre es wenn es ähnlich aussehen könnte wie: http://www.youtube.com/watch?v=-IiRzmfs5aw&feature=related

Gruß,
Final


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.036s | 17 Queries | GZIP : On ]