Ich bin festgefahren, ein wichtiges Detail meines Wildwassers zu entwickeln: Es nach unten fließen zu lassen!
In Anbetracht einer typischen 3D-Welt, in der Wasser in Richtung Schwerkraft tendiert g=(0,-1,0)
, und der Normalen der Wasseroberfläche n=(x,y,z)
, wie kann ich darauf basierend den Vektor der Wasserflussrichtung berechnen?
Betrachten Sie als Beispiel diesen schlecht gemachten Graphen (allerdings in 2D).
Update: Ich denke über eine sehr vereinfachte Wasseroberfläche nach (Nur ein Flugzeug: Keine Wellen, keine Wellen, kein Druck usw.). Wenn einer dieser Punkte angewendet werden müsste, würde die Antwort von mehr Faktoren als nur dem Normalen abhängen.
quelle
Sie können die Fließrichtung des Wassers nicht anhand seiner Oberflächennormalen bestimmen. Sie müssen zusätzliche Daten speichern.
Ein einfacher Ausflug zum Fluss sollte ausreichen, um Sie davon zu überzeugen. Jeder Unterschied in den Oberflächennormalen spiegelt lediglich die Welligkeit der Oberfläche wider. Die Wassermasse fließt weiterhin in die gleiche Richtung. Der zugrunde liegende Grund ist jedoch, dass die Normale eine Ebene definiert und Sie einen Flussvektor benötigen . Ihre Vektoren beziehen sich auf die Form der Oberfläche und nicht auf die Bewegung des Wassers.
quelle