Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Balken der sich mit Wasser füllt (GLScene oder OpenGL) (https://www.delphipraxis.net/92522-balken-der-sich-mit-wasser-fuellt-glscene-oder-opengl.html)

Neutron 21. Mai 2007 17:46


Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Hi Leute!!

Ich möchte in ein Spiel einen Ladebalken, in form eines leeren durchsichtigen Zylinders, der sich mit
Wasser füllt, ein bauen... Die Idee is soweit so schön nur leider hab ich keine Ahnung wie ich das realisieren soll! :(

Ich hab mit glscene einen Durchsichtigen Zylinder bereits erstellt (Kann ja jeder :-D sogar ich :wink: )...

Aber nun weiß ich nicht wie ich das mit dem Wasser machen soll!!
Wenn jemand eine Idee hat egal ob glscene oder Opengl würde ich mich auf jeden Fall freuen!!

Ich danke schon im voraus für eine Antwort!! :-D

Khabarakh 21. Mai 2007 20:10

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Wie detailiert soll das Ganze denn werden? Alles, was über eine halbwegs gewellte Wasserpberfläche hinausgeht, würde ich einfach in einem professionellen Programm vorrendern.

EWeiss 22. Mai 2007 11:09

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Zitat:

Aber nun weiß ich nicht wie ich das mit dem Wasser machen soll!!
Beutze doch einfach ne wasser-texture anstelle deiner transparentz.

gruss

Neutron 22. Mai 2007 12:17

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Ja... es soll schon relativ detailiert sein!

Eine normale Texture bewegt sich ja nicht so wie wasser... Und wenn man sie animiert sieht das
ja (mit meiner Technick) auch nach nichts aus....

Ich hab schon überlegt ob ich das mit dem Wasser weglasse...

Denn es geht ja nicht unbedingt darum, das in dem Balken Wasser is sonderen
einfach nur das er sich befüllt mit etwas, das nach ein bisschen was aussieht!

Eine andere überlegung wären vielleicht Partikel...(wenn es genug sind und man die blau macht sieht es
ja vielleicht sogar aus wie Wasser)...

Nur wie sagt man den Partikeln, dass sie nur in dem Gefäß sein sollen???

Phobeus 23. Mai 2007 08:12

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
In dem Du den Bereich prüfst und Partikel, die diesen Bereich verlassen löscht oder (bei Wasser eher schlecht) abprallt. Bei einem Rechteck läßt sich dies extrem leicht realisieren, bei einem Cylinder wird man wohl doch etwas mit Mathe ran und nochmal PI nachschlagen. Bei einer Emission aus der Mitte heraus und gleichbleindenen Bewegungen, müßte man übrigens nur prüfen, ob das Objekt sich gerade im Wert von Radius bewegt hat.

Allerdings halte ich Partikel für nahezu gänzlich ungeeignet für "Wasser" den schönsten und einfachsten Effekt erreicht man mit einer TexureMatrix, die sich um die Bewegung kümmert. Am besten zwei gute Wassertexturen (kann die gleiche sein) versetzt animieren und übereinander legen.

OregonGhost 23. Mai 2007 10:02

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Zitat:

Am besten zwei gute Wassertexturen (kann die gleiche sein) versetzt animieren und übereinander legen.
Das war zu Zeiten von DirectX 7 sogar noch in Echtzeitspielen aktuell, für einen Fortschrittsbalken ist das vermutlich auch eine schöne, einfache Lösung. Ich muss Phobeus zustimmen, für Wasser sind Partikel eher ungeeignet - außer du gehst dabei in Richtung Metaballs bzw. Blobs. Dafür gibt es ein Sample im DirectX SDK. Da lass ich aber mal dahingestellt, wie gut man die in einer Röhre halten kann, sieht aber auch irgendwie nett aus :)

Wenn du aber wirklich schönes Wasser haben willst, noch dazu in einer Röhre, brauchst du zwei Dinge:
Erstens eine Brechung im bereits gefüllten Bereich, damit man sieht, dass dort Wasser drin ist, und zweitens eine ansehnliche, spiegelnde, animierte Oberfläche. Die Oberfläche kann dabei flach sein, wenn die Textur die Spiegelung übernimmt (z.B. Bump Mapping) und das Wasser noch oben wächst. Wenn das Wasser von links nach rechts schwappen soll, muss auch die Form der Oberfläche animiert sein. Allerdings wirst du hierfür eine Menge Arbeit investieren müssen, ein schöner Artikel dazu ist beispielsweise dieser auf gamedev.net. Ist aber nicht unbedingt trivial alles und man muss sich fragen, ob sich das für einen Fortschrittsbalken lohnt, zum Lernen ist es so oder so interessant :)

Neutron 23. Mai 2007 14:33

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Ich hab jetzt einen Balken genommen der nach oben hin wächst und sich dabei dreht.
(Das mit dem Wasser ist mir dann ja doch zu umständlich, nur für ein Ladebalken) :-D

Danke trotzdem!

Oxmyx 28. Mai 2007 13:45

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Warum einfach, wenn's auch kompliziert geht...

Wieso machst du die Lade-Animation nicht mit einem Programm deiner Wahl, speicherst die Einzelbilder dann ab und zeigst sie nacheinander in deinem Progamm an?

turboPASCAL 28. Mai 2007 13:51

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Weil es besser ausschaut? :stupid:

Ich würde es auch mit einer Textur machen.

@Neutron, Ich habe aber keine Vorstellungen wie du dir das denkst wie es aussehen soll. :zwinker:

Man kann mit GLScene und OpenGl in eine Textur rendern und diese dann darstellen. (währe mir zu Aufwendig)

Oxmyx 29. Mai 2007 12:38

Re: Balken der sich mit Wasser füllt (GLScene oder OpenGL)
 
Zitat:

Zitat von turboPASCAL
Weil es besser ausschaut? :stupid: [...]

Das bezweifle ich!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz