Warum ist Leda so wavin’?
November 4th, 2010 by admin
Frage: Welches Gefühl könnte obiges Bild symbolhaft beschreiben?
A: Heiterkeit
B: Genügsamkeit
C: Selbstmordgedanken eines verzweifelten Kryptologen?
Insgesamt drei mails habe ich zu dem nachfolgenden Thema bekommen, zwei davon in verständlicher Sprache formuliert – für die dritte musste ich mehrere Wissenschaftler engagieren und fünf Wochen lang versorgen, ehe ich das folgende Ergebniss in den Händen hielt: Warum ist Leda so wavin’?
Großartig. Einen Haufen Geld für teure Wissenschaftler rausgehauen. Vielen Dank an Wolfgang. H aus H. Nie wieder wird man Da Vinci skizzen auf meinem Blog finden!
Um weiteren Kopfnüssen vorzubeugen und die Frage “Warum ist Leda so wavin’?” weitestgehend zu beantworten: Wer sich auf meinem kleinen Blog schon mal umgeschaut hat, hat sicher mal das Tutorial zu fortlaufenden Perlinschen Störungen bemerkt oder zumindest einen Hinweis darauf wahrgenommen. Mit perlinschen Bildern kann man ganz wundervolle Sachen anstellen. Das Bild, das aus diesen (in jedem Frame leicht modifizierten) Störungen hervorgeht, enthält Farbwerte, die (da bin ich mir sicher, auch wenn ich nicht explizit im AS3DMod Code nachgeschaut habe) bei Wavin’ Leda als Grundlage für die Z-Position der Polygoneckpunkte dienen, auf denen das Bitmap (also Leda) abgebildet ist.
Wer ein wenig mit Bitmapdata.perlin() gearbeitet hat, der kann sich das gut vorstellen: z.B, je heller ein Bereich (punkt) im Perlin Bild mit der Zeit wird, desto weiter wird der “zugehörige” Polygoneckpunkt in die Tiefe geschoben. Wenn also das Plane 100×100 px hätte und aus 10 segmenten besteht, befindet sich jeweils ein Eckpunkt an den Positionen (0,0), (0,10),(10,0),(10,10) und so weiter bis (100,100). Jetzt macht man sich so ein hübsches vortlaufendes perlinsches Störungsbild, das ebenfalls 100×100 hat, ehe die Magie ins Spiel kommt: Jetzt werden in Jedem Frame Farbinfos aus dem Bild entnommen und zwar an genau den Punkten/Pixeln, an denen sich auch die beschriebenen Sgement-Eckpunkte des Planes befinden. Wavin’ Leda: Voila.
Schematisch könnte man sich das z.B so vorstellen:
// on ENTER FRAME plane.punkt3D.z = perlin_pixel_integer_color_value;
Schaut euch doch einfach nochmal dieses kurze Tutorial an, klickt das Bild und fokusiert euer Augenmerk auf einen Punkt in der Animation – hier könnte so ein Segment-Eckpunkt liegen, dessen Tiefe immer vom akutellen Farbwert abhängt. Wer hierzu mehr Infos wünscht, dem gebe ich noch einen Wertvollen Hinweis, wie man die Farbinfos effizient und auch möglichst performant rauskriegt – ihr erinnert euch? Bei der dynamischen Nebel Erzeugung haben wir genau das schon mal getan. Und schaut auch mal selbst auf www.everydayflash.com vorbei und sehet, was der gute Bartek Drozdz dort treibt.
Dieser Text wurde verfasst mit freundlicher Genehmigung von Wolfi H. aus H. Danke Wolf und weiterhin viel Spaß beim Flashen.