Go Back   Science Forums Biology Forum Molecular Biology Forum Physics Chemistry Forum > Regional Molecular Biology Discussion > Forum Physik
Register Search Today's Posts Mark Forums Read

Forum Physik Forum Physik.


Simulation unruhige Wasseroberfläche

Simulation unruhige Wasseroberfläche - Forum Physik

Simulation unruhige Wasseroberfläche - Forum Physik.


Reply
 
LinkBack Thread Tools Display Modes
  #11  
Old 09-16-2005, 04:10 PM
Roland Damm
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberfläche

Moin,

Jan Bruns hat geschrieben:


Ich sehe jetzt nicht, wieso das Lot auf eine Fläche im Heightmap
nicht eine andere Fläche nochmals schneiden sollte. Z.B.

H[i,j] = {1 km für (i+j) % 2 == 0
{0 km rest
Sicht für meinen Geschmack ganz schön ungemütlich aus.

Oder willst du, daß eine Senkrechte zum gesamten Hightmaß die Fläche
mehrfach schnieden kann, Hinterschneidungen also möglich sind?
Kuglen, ganz viele Kugeln hinschütten.

Cu Rollo

Reply With Quote
  #12  
Old 09-16-2005, 04:39 PM
Jan Bruns
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberfläche

"Roland Damm":

Genau.


Wie meinst Du das?

Gruss

Jan Bruns

Reply With Quote
  #13  
Old 09-16-2005, 05:41 PM
Hans-Bernhard Broeker
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberfl?che

Jan Bruns <[Only registered users see links. ]> wrote:


Der Fachausdruck dafuer ist "height map" --- der Spezialfall von "bump
maps" fuer waagerechte Grundflaeche.


Das Problem, und auch die Loesung, haben mit Physik auch eher wenig zu
tun. Das ist primaer Mathematik oder Computergraphik.

Wie jede andere nicht-explizite Flaeche im Raum, kann man auch
aufgewuehltes Wasser allgemein besser als parametrische Flaeche
darstellen, also als Abbildung zweier *beliebiger* Parameter (u,v) auf
die drei Koordinaten (x,y,z), statt direkt von (x,y) auf z.

Wenn man damit allerdings Volumeneffekte (wie Schwerkraft oder
Schwerewellen) modellieren will, artet das in ernsthafte Rechenarbeit
aus. Frueher oder spaeter braucht man, wenn das ernsthaft betreiben
will, ein volumetrisches Modell, also ein 3D-Gitter, in dem fuer jeden
kleinen Wuerfel im Raum gespeichert, ob es da nass oder trocken ist,
und wie stark es dort in welche Richtung stroemt.

--
Hans-Bernhard Broeker ([Only registered users see links. ]-aachen.de)
Even if all the snow were burnt, ashes would remain.
Reply With Quote
  #14  
Old 09-17-2005, 12:48 AM
Ralf Muschall
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberfl?che

Hans-Bernhard Broeker <[Only registered users see links. ]-aachen.de> writes:


Sind bump maps nicht etwas total anderes? IIRC wird da die Fläche
eben gelassen und nur dir Richtung der Normalen verfälscht (sodass sie
nicht mehr senkrecht zur Fläche steht). Da allerlei Reflexionen und
Beleuchtungsdichten von der Normalenrichtung abhängen, bekommt man
damit halbwegs realistische 3d-Imitationen, obwohl man komplett in 2d
rechnet. Mit Wasserwellen mag das gehen, solange die Winkel klein
sind und die Wassertiefe groß gegen die Wellenhöhe.

Ralf
--
GS d->? s:++>+++ a+ C++++ UL+++ UH++ P++ L++ E+++ W- N++ o-- K-
w--- !O M- V- PS+>++ PE Y+>++ PGP+ !t !5 !X !R !tv b+++ DI+++
D? G+ e++++ h+ r? y?
Reply With Quote
  #15  
Old 09-17-2005, 09:54 PM
Jan Bruns
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberflaeche

"Hans-Bernhard Broeker":



In diesem Kontex6 ist es keine Bumpmap,
da es um einen physikalischen "Ereignishorizont" ging.

Wenn man so ein Ding dann in der Computergrafik verwendet,
dann kann man es in der Tat auch Bumpmap, oder hier noch
passender: Displacement-map nennen.



Es wird schon seine Gründe gehabt haben, daß ich das Problem hier
eingeschleppt habe.


Klingt ein weig so, als wolltest Du herausfinden, inwiwieweit diese
modernen Grafikprozessoren für wissenschaftliche Berechnungen eingesetzt
werden können. So unglaublich enorm sind die Zugewinne im Vergleich zu
CPU-basierter Berechnung oftmals nicht. Ausserdem kann die Technik für
sehr viele Berechnungen gar nicht bzw. nicht sinnvoll eingesetzt werden.

Wenn es Dir also nicht direkt um Darstellung geht, würde ich empfehlen,
abzuwaren, bis der IT-Fritze deines Vertrauens versucht, Dir den Kram
aufzuschwätzen.


Klar. Trotzdem. Also mein Ansatz sieht nun erstmal wie folgt aus.
Vielleicht kann das irgendjemand mit mehr Mathe/Physikkentnnissen mal
Korrekturlesen.



Ich habe mich nun dazu durchgerungen, ein zweidimensionales Vektorfeld
zu verwenden, wobei eine Feldeigenschaft dreidimensionale Raumkoordinaten
beschreibt. Vereinfacht gesagt habe ich damit ein Oberflächennetz,
womit ich die Oberfläche des Wassers beschreiben kann.

Dabei muss eine beliebige kontinuierliche Kurve auf dem Feld auch in dem
mit der Feldeigenschaft beschriebenen Raum eine kontinuierliche Kurve
abbilden.

Der Einfacheit halber assoziere ich eine Koordinate z (der Feldeigenschaft)
mit der Wasserhöhe, und setze fest, daß bei komplett ruhiger Wasseroberfläche
z für das gesamte Feld geich sein soll, während die beiden anderen Koordiaten
der Feldeigenschaft (bei stillem Wasser) gleich ihren Feldkoordinaten sein
sollen.

Nun gilt es, Verformungsregeln der Wasseroberfläche zu finden.

Wasser ist (zumindest in dem hier relevanten Rahmen) nicht komprimierbar,
und die Wassermenge bleibt konstant, sofern nicht etwas aus dem Feld
entnommen oder hinzugefügt wird:

int(int(feld[x,y].z*dif(feld[x,y].x)*dif(feld[x,y].y),x=ax..bx),y=ay..by)
= const * (bx-ax) * (by-ay)

Aus meinen Naturbeobachtungen weiß ich, daß die Verformung von
Wasseroberflächen kein rein oberflächlicher Effekt sein kann,
also eine Wellenausbreitung nicht derart geschieht, daß die
Oberfläche vom Wellenberg zum Tal läuft, sondern vieleher
die Wellenberge selbst sich bewegen, und ihre waagerecht weitgehend
ruhende Oberfläche entsprechend verformen. Jedenfalls ist die
waagerechte Oberflächenbewegung weitaus geringer, als die vertikale.

Andererseits lässt sich eine Welle nahezu vollständig "abschirmen",
wenn an der Oberfläche ein Hindernis wenigstens eine Wellenhöhe
in das Wasser ragt (getestet mit Brettchen im Waschbecken).

Demzufolge muss also ein Volumenstrom tangential zur Oberfläche
für die Wellenausbreitung verantwortlich sein.

Um diesen Strom zu beschreiben, füge ich der Feldeigenschaft zwei
weitere Koordinaten fx und fy bei, die tangentialen Strom entlang der
beiden Feldachsen bescheiben.

Um den oben genannten Wassererhaltungssatz nicht zu verletzen,
muss nun wohl, wenn der Strom tatsächlich Wasser von einem
Punkt des Feldes zu einem anderen bewirken soll, auf beiden Seiten
der gleiche Wassermengenbetrag hinzu- bzw. hinfortgenommen werden.

Nach diesem Wassererhaltunssatz (den ich hoffentlich korrekt
formuliert habe), lautet der Term für die Wassermenge bei einem Punkt

Menge(x,y) = feld[x,y].z*dif(feld[x,y].x)*dif(feld[x,y].y)

Wird nun Wasser hinzugefügt, dann ist

Neumenge(x,y) = Altmenge(x,y) + Zufluss

Neumenge(x,y) = feld_[x,y].z*dif(feld_[x,y].x)*dif(feld_[x,y].y) + Zufluss

feld_[x,y].z*dif(feld_[x,y].x)*dif(feld_[x,y].y)
= feld[x,y].z*dif(feld[x,y].x)*dif(feld[x,y].y) + Zufluss

Zufluss = feld[x,y].fx + feld[x,y].fy

Zwecks Energieerhaltung kann der Tangentialstrom durch Höhenunterschiede
fortwährend beschleunigt werden,

afxh = k * dif(feld[x,y].z,x)
afyh = k * dif(feld[x,y].z,y)

wenn man den Strom als Flussgeschwindigkeit auf einem fixen Querschschnitt
interpretiert. Zusammen mit einer Reibungskonstante zwecks Energieverlust:

feld_[x,y].fx = reibfrei * (feld[x,y].fx + afxh)
feld_[x,y].fy = reibfrei * (feld[x,y].fy + afyh)


Nun hat die Verformungsgleichung noch einige Freiheiten. Vielleicht macht es
Sinn, eine Reibung des Tangentialstroms an der Oberfläche zu Vermuten.
Z.B. so ähnlich wie:

feld_[x,y].x = feld[x,y].x + reib * feld[x,y].fx
feld_[x,y].y = feld[x,y].y + reib * feld[x,y].fy

Ohne das jetzt rechenrisch überprüft zu haben, vermute ich, daß damit bereits
eine eindeutige Verformungsgleichung gegeben ist.

Weiter nehme ich an, daß diese Ausführungen noch zu buggy sind, um ernsthaft
die Oberflächenspannung mit reinzubasteln (was wohl am besten energetisch
beim Stromterm ginge).

Gruss

Jan Bruns

Reply With Quote
  #16  
Old 09-18-2005, 02:05 AM
Jan Bruns
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberflaeche

"Jan Bruns":


Also hier ist schonmal wenigstens ein Vorzeichenfehler drin, wenn ich
das richtig sehe.

Die Idee war eigentlich, daß nach unten ausgerichtete Oberflächenteile
der eigentlichen Flächenausrichtung entgegengerichtet sind.

Der Fehler tritt auf, wenn die Oberflächenausrichtung auf beiden Achsen
entgegenlaufend ist.

A=dif(feld[x,y].x,x)
B=dif(feld[x,y].y,y)

flaechenfaktor = abs(A*B)*min(sign(A),sign(B))

Gesamtwassermenge = int(int(feld[x,y].z*flaechenfaktor, x=ax..bx),y=ay..by)

Gruss

Jan Bruns

Reply With Quote
  #17  
Old 09-19-2005, 01:52 PM
Hans-Bernhard Broeker
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberflaeche

Jan Bruns <[Only registered users see links. ]> wrote:



_Ich_ will gar nichts herausfinden. Ich versuchte nur, die
urspruengliche Frage zu beantworten: wie kann man eine Flaeche im Raum
mathematisch so modellieren, dass sie nicht explizit sein muss, also
an jeder stelle (x,y) nur eine Hoehe z=f(x,y) hat? Und genau das
leistet die parametrische Flaeche.


Also genau das, was ich vorgeschlagen hatte: eine parametrische
Flaeche, diskretisiert in ein zweidimensionales Gitter.



"Oberflaeche" kann gar nicht von irgendwo nach irgendwo anders
"laufen". Sie verformt sich, weil sich das *Volumen* verformt, also
durch Stroemungen des Wassers innerhalb der Oberflaeche.


Nicht allein. Es fehlt die Erklaerung, was diesen Volumenstrom (die
"Auslenkung") dazu verleitet, nicht nur hin- sondern anschliessend
auch wieder zurueckzufliessen (die Rueckstellkraft). Den liefert bei
Wasserwellen ein variables Gemisch aus Schwerkraft, Wind,
Bodeneffekten des Gesaessers, und Oberflaechenspannung.


Mit einer Oberflaechenmodellierung allein kann ein solches Mikromodell
von Wasserwellen nicht wirklich funktionieren, denn wie du selbst
schon ganz richtig festgestellt hast, ist das primaer ein
Volumeneffekt. Und um den zu beschreiben, muss auch die Datenstruktur
dreidimensional Volumen haben. Es ist sicherlich falsch, anzunehmen,
dass die lokale Stroemungsgeschwindigkeit fuer alle z, bei gegebenem
Ort (x,y), gleich sei.

--
Hans-Bernhard Broeker ([Only registered users see links. ]-aachen.de)
Even if all the snow were burnt, ashes would remain.
Reply With Quote
  #18  
Old 09-20-2005, 03:15 PM
Jan Bruns
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberflaeche

"Hans-Bernhard Broeker":



Entschuldige. Dann habe ich anscheinend deine Ausfuehrungen
ziemlich sinnreduziert aufgenommen.




Gemeint war, daß das Wasser sich nicht so verhält, als wäre es in einer
momentanen Form schmelzend eingeforen.

Hätte ja sein können, dass das Wasser ansich eigentlich ein starrer
Koeper ist, an dem sich lediglich eine Oberflächenschicht frei bewegen
kann.



Ja. So kann man z.B. auch unter Wasser die Oberfläche von Wasser
"aufwuehlen", was allerdings oft vergleichsweise anstrengend ist.

Wie in dem Modell meine Annahme zur Tiefenverteilung der
strömungsgeschwindigkeit aussieht, weiss ich noch gar nicht so genau,
und vermute, daß ich diese nich eindeutig festgelegt habe.

In dem Modell bleibt bisher statisch betrachtet der tangentiale Strom
bei einem Punkt von einer Richtungsänderung unabhängig. Der Strom wird
durch die vertikale Steigung Beschleunigt. Mit dem verwendeten
Term muss dann wohl die tiefenabhängige (Tiefe meint hier entlang der
Flächennormalen) Geschwindigkeit v(q) dem energietischen Zusammenhang
m*int(v(q)^2,q=q_min..q_max)/(q_max-q_min) = fx^2+fy^2
genügen, was in der Tat z.B. mit einer Tiefenunabhängigen
Strömungsgeschwindigkeit v(q) = sqrt(fx^2+fy^2) möglich wäre.

Sicherlich lassen sich auch realiätsnähere Annahem finden, die
diese Bedingung ebenfalls erfüllen. Auf die Form der Oberfläche
hat das allerdings keinen Einfluss.

Möglicherweise macht es Sinn, dem Modell einige weitere fx/fy-Paare
mit verschiedenen Trägheitskonstanten k zu verwenden.

Sehr kleine k dürften allerdings wegen des oben beschriebenen Fehlers
(statisch betrachtet gleichbleibender Strom, trotz Richtungsänderung)
wenig Sinn machen.
Da in grösserer Tiefe der Strom anscheinend weitestgehend unabhängig
von Kräuselungen auf der Oberfläche ist, wäre es dementsprechend
sicherlich sinniger, solche Berechnungen auf die Feldkoordinaten
(also ein Quadrat- oder Kubikraster), anstatt auf die Oberfläche zu
beziehen. Ein solcher Systemwechsel scheint mir allerdings auf
Grafikprozessoren momentan extrem "teuer" zu sein.

Gruss

Jan Bruns

Reply With Quote
  #19  
Old 09-21-2005, 10:06 PM
Roland Damm
Guest
 
Posts: n/a
Default Simulation unruhige Wasseroberfläche

Moin,

wenn auch etwas spät,...

Jan Bruns hat geschrieben:


Kugeln lassen sich von bestimmten Programmen sehr schnell
darstellen. Die Oberflächennormale ist einfach bestimmbar für jeden
Pixel und die dazugehörigen Pixel bilden einen Kreis. Raytracing
kann jedenfalls Kugeln sehr gut handlen. Also die Oberfläche durch
Kugeln annähren.

CU Rollo
Reply With Quote
Reply

Tags
simulation , unruhige , wasseroberfläche


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Simulation des Aufstiegs eines Stratosphärenballons und eines Fallschirmsprungs aus 30km bzw. 40km Höhe Jens Remus Forum Physik 33 12-03-2007 09:42 AM
Simulation Evolutionsgeschwindigkeit Roland Damm Forum Biologie 4 07-27-2006 09:46 PM
CADSM: 3D CAD with Motion Simulation A-S Koh Physics Forum 0 09-27-2004 03:33 PM
New software for simulation of 3D life forms available Maciej Komosinski Forum Biologia 0 06-25-2004 12:39 PM
New software for simulation of 3D life forms available Maciej Komosinski Forum Biologie 0 06-25-2004 12:39 PM


All times are GMT. The time now is 08:49 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 2005 - 2012 Molecular Station | All Rights Reserved
Page generated in 0.18878 seconds with 16 queries