Flusslauf
Übersicht

TigerassBetreff: Flusslauf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Ich möchte gerne einen Flusslauf mit Kurven in Blitz darstellen. Diesen möchte ich Animieren, indem ich eine Textur Mithilfe der UV Koordinaten darauf bewege. Das Problem dabei ist nur, dass ich keine Ahnung hab, wie man für jedes Triangle in der Kurve die UV Koordinaten für die Textur einstellt. In Blitz habe ich es mit VertexTexCoords() hinbekommen, aber das Würde zu viel code Brauchen und zu viel Arbeit. Das ganze sollte dann auch noch als animiertes Model exportiert werden können, sodass ich es in Blitz einfach als Animation abspielen kann. Habe es mit Blender versucht, aber keine Lösung gefunden. Googlen bringt nichts. Es gab schonmal so ein Ähnliches Problem mit einer animierten Panzerkette. Ich will damit hauptsächlich erreichen dass es in den Kurven nicht so aussieht als ob das Wasser gegen das Ufer Läuft, es soll die Kurve "mitlaufen". Wäre nett wenn jemand eine Lösung für mein Problem hätte. Bedanke mich schonmal im vorraus Tigerass |
||
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
PositionTexture![]() |
||
Starfare: Worklog, Website (download) |
Tigerass |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Damit wird aber die komplette Textur vom Mesh verschoben. Dadurch entsteht ja der Effekt, das es in den Kurven so aussieht als ob das Wasser "gegen das Ufer" gedrückt wird.
EDIT: Hier mal eine Demo < 1mb was ich überhaupt damit mein. vll. kann man es sich dann besser vorstellen. https://www.blitzforum.de/upload/file.php?id=10562 Das ganze dann in Blender so animieren und dann als *.md2,*.x oder *.b3d exportieren, damit ich es einfach als animation laden kann. |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das kommt darauf an, wie die Texturkoordinaten des Wassers gesetzt wurden.
Wenn zum Beispiel die u-Koordinate in Flussrichtung zeigt und die v-Koordinate quer dazu verläuft, kannst du die Textur immer weiter in u-Richtung verschieben. Wenn du dabei wiederum darauf achtest, dass die v-Koordinaten der Modellpunkte am Ufer immer gleich bleiben, bekommst du eine relativ gute Flussbewegung hin. Bei Engstellen im Fluss wird bei diesem System das Wasser etwas enger gezeichnet. Solange man es damit nicht übertreibt, wirkt es relativ natürlich. (Dieser Nebeneffekt ist aber noch besser als der von dir beschriebene, bei dem das Wasser im Ufer verschwindet/aus dem Ufer herauskommt.) mfG mpmxyz PS: Da meine Modellierungskünste eher beschränkt sind, kann ich dir leider kein Bild zur weiteren Erklärung zeigen. ![]() Edit: Das setzt natürlich voraus, dass das Land vom Wasser getrennt ist. (Texturen) |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Tigerass |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich weiß was du meinst, habe aber keine Ahnung wie ich es umsezten kann. Kannst du mir da nen Tipp geben?
EDIT: Wasser ist ein extra-model |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Du modellierst deinen Fluss. (hast du schon)
2. Du setzt die UV-Koordinaten richtig. Hierbei definierst du eine Koordinate, die in Flussrichtung zeigst. Je weiter es dann flussabwärts geht, desto größer werden die entsprechenden Werte. Wenn du bei 1.0 ankommst, geht es an dieser Stelle sofort wieder mit 0.0 los! Ansonsten läuft der Fluss teilweise rückwärts. (Wenn sich die Textur bei Werten größer als 1.0 einfach wiederholt, musst du nicht darauf achten, dass auf 0.0 zurückzusetzen.) Mit der Stärke der Veränderung und dem Abstand von den Punkten kannst du die Geschwindigkeitsverhältnisse des Wassers festlegen. Die andere Koordinate bestimmt dann, auf welcher Seite des Flusses du dich befindest. (z.B. linkes Ufer: 0.0 Mitte: 0.5 rechtes Ufer: 1.0) Hier musst du nur beachten, dass du die Werte richtig verteilst. 3. Das Animieren im Programm Hier lässt du die flussabwärts gerichtete Koordinate kontinuierlich steigen. Wenn sie 1.0 erreicht - denke hier an eine ">="-Abfrage - wird die Verschiebung wieder auf 0.0 gesetzt. (PositionTexture ![]() mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Tigerass |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann denke ich mal dass es bei mir am setzen der UV Koordinaten mangelt, denn das kapier ich noch nicht so ganz. Du meinst, ich soll die V-koordinate kontinuierlich um z.B 0.002 pro ms verschieben. Wie aber merke ich, wo eine Kurve ist? dort wo die Kurve ist bewegt sich das Wasser dann doch auch "unter das Ufer". Oder versteh ich da was falsch? | ||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kurven entstehen dadurch, dass du den Fluss entsprechend modellierst.
Dadurch, dass die (bei dir) U-Koordinaten am Ufer gleich sind und der Fluss sich in die dort senkrecht dazu stehende V-Richtung bewegt, schiebt sich das Wasser nicht unter das Ufer durch. Das passiert nur bei einer Verschiebung in U-Richtung. Ich versuche mich mal in kleinen Textgrafiken: U X.X X.X X.X X.X 0.0 0.0 _ X.X 0.0 0.5 1.0 X.X X.X X.X 0.0 0.0 0.5 0.5 _ X.X 0.0 0.5 1.0 X.X X.X 0.0 0.5 0.5 1.0 1.0 _ X.X 0.0 0.5 1.0 X.X X.X 0.0 0.5 1.0 X.X X.X _ X.X 0.0 0.5 1.0 X.X X.X 0.0 0.5 1.0 X.X X.X _ X.X 0.0 0.5 1.0 X.X (X.X=>Land) V X.X X.X X.X X.X 1.0 1.0 _ X.X 1.0 1.0 1.0 X.X X.X X.X 0.6 0.6 0.8 1.0 _ X.X 0.8 0.8 0.8 X.X X.X 0.4 0.4 0.4 0.6 0.8 _ X.X 0.4 0.4 0.4 X.X X.X 0.2 0.2 0.2 X.X X.X _ X.X 0.2 0.2 0.2 X.X X.X 0.0 0.0 0.0 X.X X.X _ X.X 0.0 0.0 0.0 X.X (gebogen) ___________ (gerade) Hier wird die Bewegung des Wassers bestimmt. (0=>Anfang des Flusses, 1=>Hier kommt das Wasser später an. Beachte, dass das außen fließende Wasser einen längeren Weg hat!) ->Du musst nicht erkennen, ob irgendwo eine Kurve liegt, sondern musst nur darauf achten, dass die Ränder immer den gleichen U-Wert haben. Dann kann nämlich nichts verloren geben. Bei den V-Koordinaten musst du dir dann Gedanken machen, wie lange das Wasser dort hin braucht, damit das Ergebnis so aussieht, als ob das Wasser überall gleich schnell ist. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alternativ:
sofern der fluss der tiefste punkt in deinen level ist, kannst du auch einfach auf der höhe des Flusses ein plane erstellen und die textur in die fließrichtung bewegen. zugegeben unschön, aber es funktioniert ![]() Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Tigerass |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke mpmxyz
Jetzt habe ich es kapiert ![]() LG Tigerass |
||
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja,das geht such einfach mal in der Forensuche wie man annimationen abspielen kann! | ||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, das geht nicht da UV oder Texturkoordinaten nicht mit Animation exportiert werden können. Aber wie schon gesagt ist es ja mit PositionTexture sehr leicht zu lösen. | ||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group