Kennt eigentlich jemand einen halbwegs intuitiven Algorithmus um einen netten Blitzeffekt zu erzeugen?
Im Internet habe ich auf die Schnelle nichts wirklich Brauchbares gefunden - und bevor ich jetzt anfange selbst einen Algorithmus zu entwickeln (wenn man eine Gerade rekursiv in Abschnitte unterteilt und diese variiert, müsste es eigentlich halbwegs gut aussehen) frage ich mal lieber nach, ob ich mir da nicht zuviel Arbeit antun würde.
Da das Ganze ja auch noch eingefärbt und sinnvoll übergeblendet werden will - und dabei auch noch halbwegs performant sein soll - könnte das durchaus komplexer werden.
kommt drauf an, was du für einen blitz haben willst. wenn du eine art blitz haben willst, wie er bei einem gewitter entsteht, würde ich das mit punkten machen, die du dann verbindest. du legst dir eine art binäre baumstruktur im speicher an. jeder knoten hat einen punkt und zwei mögliche äste. die punkte musst du halt je nach bedarf die blitzrichtung entlang legen. manchmal wird verzweigt manchmal nicht - sollte über parameter bei der erzeugung irgendwie mit einstellbar sein - so meine idee dazu.
Eigentlich möchte ich eher Funken haben, die ich an bestehender Geometrie entlang laufen lassen kann, bzw. zwischen zwei Polen aufspannen - soll heißen, das Ganze müsste auch noch halbwegs kontrollierbar bleiben.
Wenn das erst mal gut klappt, kann man dann auch mit Ketten von Polen komplexere Geometrie "elektrifizieren".
Ein verzweigter "echter" Gewitterblitz ist natürlich auch interessant - den könnte man auch genau nach deinem Algorithmus machen, zumal hier die Performance auch nicht soo wichtig ist, als wenn dauernd etwas in Gegend herumbritzelt (ist ja eher unwahrscheinlich, dass ein Blitz mal länger anhält). Wäre auf jeden Fall was für ein Terraindemo .
das ginge vielleicht sogar so ähnlich. du legst eine zahl kontrollpunkte zwischen den polen fest. du legst sie anfangs genau auf die linie, die beide pole direkt verbindet. bei jedem bild verschiebst du die kontrollpunkte ein wenig(die weite ist sicher ein nettes schräubchen zum drehen)und kümmerst dich gleichzeitig darum, dass sie einen vorgegebenen Raum nicht verlassen. Gibt sicher ein ganz nettes gezucke.
Danke für den Link.
Jan Horn unterteilt einfach die Linie in gleichmäßige Segmente, deren Endpunkte dann in der y-Komponente variiert werden. Das ist zwar einfach zu programmieren, schaut aber IMHO nicht besonders echt aus.
Wenn niemand einen besseren Vorschlag hat, werde ich es doch so machen, dass für einen Funken zwei Punkte (Pole) angegeben werden können, der Effekt unterteilt die so erhaltene Strecke dann zufällig rekursiv und variiert die erhaltenen Punkte in x,y und z.
Parameter wären:
* minimale und maximale Rekursionstiefe der Segmente
* minimale und maximale Abweichung der neu erhaltenen Punkte in x,y und z (relativ zu folgender Strecke: Distanz zwischen Polen / Rekursionstiefe).
Das konkrete Aussehen des Funkens (Farb- und Blend- parameter, evtl. Texturen) muss ich mir noch überlegen.
Sollte etwas Ansehnliches dabei heraus kommen, stelle ich eine entsprechende Demo online (kann allerdings etwas dauern, da andere Sachen zur Zeit höhere Priorität haben).
Registriert: So Dez 29, 2002 10:37 Beiträge: 251 Wohnort: Ulm
hi
also ich würde das so machen, dass ich die strecke in n teile unterteile (n sei dir überlassen), allerdings nicht regelmäßig sondern zufällig (also z.B. ist die strecke 5 LE lang, du willst n=5, dann kann z.B. die länge zwischen 0.6 und 1.4 variieren oder sowas..) und schließlich kannst du noch sagen, der immer nächste wert darf nicht weiter als irgendein wert vom vorangegangenen sein..
Fixe Anzahl von Segmenten ist nicht so gut, glaube ich- der rekursive Ansatz mit Variation sollte bessere Ergebnisse liefern, da jede Rekursionsebene sich an der Lager der Punkte der vorherigen Stufe orientiert - damit ist gewährleistet, dass benachbarte Punkte nicht zu sehr voneinander abweichen - ein Blitz oder Funke ist ja nicht völlig unstrukturiert (einen ähnlichen Ansatz verwendet z.B. Terragen bei der Erstellung von Landschaften).
Mitglieder in diesem Forum: Google [Bot] und 21 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.