Farbborg-Animationsformat: Unterschied zwischen den Versionen
(→Aufbau) |
Keine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Aufbau == | == Aufbau == | ||
Das Format ist äußerst einfach gehalten und | Das Format ist äußerst einfach gehalten und für die Ausführung auf Mikrokontrollern optimiert. Es gibt weder Sprünge noch Schleifen, somit kann die Anmations-Datei zeilenweise vom Anfang bis zum Ende ausgelesen werden. | ||
Alle Zeichnungsoperationen werden zunächst in einem nicht sichtbaren Bildspeicher ausgeführt und werden erst auch dem sichtbaren übertragen wenn der Befehl SwapAndWait oder Fade aufgerufen wird. | |||
Zusätzlich zu dem Animationsdateien gibt es auch noch Playlisten. Eine Playlistdatei, ist ein Textdatei in der nur die Dateipfade der abzuspielenden Animationsdateien untereinander aufgelistet werden. | Zusätzlich zu dem Animationsdateien gibt es auch noch Playlisten. Eine Playlistdatei, ist ein Textdatei in der nur die Dateipfade der abzuspielenden Animationsdateien untereinander aufgelistet werden. | ||
Da das Implementierung des Fat-Dateisystems keine langen Dateinamen unterstützt müssen die Dateinamen in dem 8.3 Format von MSDOS angesprochen werden. | |||
Außerdem ist der Pfad immer absolut anzugeben. Z.B "anims/neueanim.prn". Der Eintrag in der Playlist ist ebenfalls absolut. Als Verzeichnistrennzeichen wird ein einfaches Slash '/' verwendet. | |||
Achtung es ist auf die richtige Anzahl an Leerzeichen zu achten, da der Parser sehr einfach gehalten ist. | |||
== Sprachelemente == | == Sprachelemente == | ||
Zeilen die mit Raute anfangen sind Kommentare | Zeilen die mit einer Raute '#' anfangen sind Kommentare. | ||
=== Farbwerte und Zahlenformate === | |||
Farbwerte können mit Hilfe der erweiterbaren Farbpalette oder als RGB Wert angegeben werden. | |||
Ein Farbpalettenwert besteht aus einem druckbaren Zeichen Zeichen (also keine Whitespaces und Zeilenumbrüche). | |||
RGB Farbwerte werden hexadezimal in folgender Form angegeben: | |||
# Blau | |||
# Grün| | |||
# Rot| | | |||
# | | | | |||
# v v v | |||
ff8800 | |||
Dieses Beispiel ergibt eine Farbe mit 100 % Rot, 50 % Grün und 0% Blau. | |||
<uint8_t> steht für vorzeichenlose Ganzzahl mit 8 Bit, d.h. eine Zahl von 0 bis 255. | |||
<uint16_t> steht für vorzeichenlose Ganzzahl mit 16 Bit, d.h. eine Zahl von 0 bis 65535. | |||
=== Befehle === | === Befehle === | ||
Nach jedem Befehl kommt | Nach jedem Befehl kommt eine leere Zeile. | ||
'''Befehl 'i'''': | |||
Voxelweise mit RGB Farbwerten den nicht sichtbaren Bildspeicher setzen. Dabei werden wie unten aufgeführt die Ebenen des Würfels von unten nach oben befüllt. Jede Ebene besteht aus 5x5 RGB Farbwerten die durch Leerzeichen und Zeilenumbrüche getrennt sind. Es sind keine führenden Leerzeichen zulässig. | |||
Voxelweise mit Farbwerten | |||
^ 00aaff 00aaff 00aaff 00aaff 00aaff | ^ 00aaff 00aaff 00aaff 00aaff 00aaff | ||
Zeile 47: | Zeile 72: | ||
00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | ||
'''Befehl | |||
Für jede Animaionsdatei gibt es eine | '''Befehl 'p'''': Farbpalette erweitern | ||
Für jede Animaionsdatei gibt es eine Farbpalette, in der man einem druckbaren Zeichen einen RGB Farbwert zuweist. Dies ermöglicht eine kürzere Schreibweise | |||
farbKürzel <uint8_t> farbWert <hexByte><hexByte><hexByte> | farbKürzel <uint8_t> farbWert <hexByte><hexByte><hexByte> | ||
Zum Beispiel | |||
y ffff00 | |||
weist dem Zeichen 'y' die Farbe Gelb zu. | |||
Es können mehrere Farbdefinitionen untereinander aufgeführt werden. Das Zeichen '>' am Anfang einer Zeile markiert das Ende der Farbpalletten Erweiterung. | |||
Zusätzlich sind die folgenden Farbwerte automatisch definiert | |||
-'R' Rot | |||
-'G' Grün | |||
-'B' Blau | |||
-'S' Schwarz | |||
-'W' Weiß | |||
'''Befehl 'I'''': Voxelweise mit Farbpalette das Bild in den ersten Bildbuffer. | |||
Unten ----------- z ----------> Oben | Unten ----------- z ----------> Oben | ||
Zeile 72: | Zeile 103: | ||
+--- x ---> | +--- x ---> | ||
'''Befehl 'C''': Das gesamte Bild mit einem Palettenwert | '''Befehl 'C''': Das gesamte Bild mit einem Palettenwert setzen | ||
< | |||
<zeichen> | |||
'''Befehl 'c'''': Das gesamte Bild mit einer RGB-Farbe setzen | '''Befehl 'c'''': Das gesamte Bild mit einer RGB-Farbe setzen | ||
'''Befehl 'S'''': Die Bildspeicher swapen zwecks double buffering und angegeben Zeit warten | <hexByte><hexByte><hexByte> | ||
<uint16_t> | |||
'''Befehl 'v'''' | |||
Setzen von einzelnen Voxeln mit RGB Farbwerten. | |||
<x-Koordinate 0 bis 5> <y-Koordinate 0 bis 5> <z-Koordinate 0 bis 5> <hexByte><hexByte><hexByte> | |||
Es können wie bei der Farbpalettenerweiterung mehrere Farbwerte untereinander definiert werden. Das Zeichen '>' am Anfang einer Zeile markiert das Ende. | |||
'''Befehl 'V'''' | |||
Setzen von einzelnen Voxeln mit Palettenwerten. | |||
<x-Koordinate 0 bis 5> <y-Koordinate 0 bis 5> <z-Koordinate 0 bis 5> <Farbpalettenzeichen> | |||
Es können wie bei der Farbpalettenerweiterung mehrere Farbwerte untereinander definiert werden. Das Zeichen '>' am Anfang einer Zeile markiert das Ende. | |||
'''Befehl 'S'''': Die Bildspeicher swapen zwecks double buffering und angegeben Zeit in Milisekunden warten | |||
<uint16_t> Millisekunden | |||
'''Befehl 'F'''': Zwischen alten und neuen Bildspeichern in n Schritten a ms Millisekunden | '''Befehl 'F'''': Zwischen alten und neuen Bildspeichern in n Schritten a ms Millisekunden | ||
morphen/faden | morphen/faden | ||
Zusätzlich gibt es auch noch Playlist Dateien. Diese haben die Endung .apl, | <uint16_t> Millisekunden ms | ||
<uint16_t> Anzahl Schritte n | |||
Zusätzlich gibt es auch noch Playlist Dateien. Diese haben die Endung .apl, für Animation Playlist. in Ihnen sind Kommentar durch ein #-Zeichen am Anfang der Zeile möglich. In jeder Zeile kann dort der Pfad zu einer .anim Datei (inclusive .anim) stehen, die allesamt nacheinander abgespielt werden. | |||
== Beispiel Video == | |||
C | C | ||
S | S | ||
Zeile 147: | Zeile 196: | ||
i | i | ||
ffffff ffffff ffffff ffffff ffffff | |||
ffffff ffffff ffffff ffffff ffffff | |||
ffffff ffffff ffffff ffffff ffffff | |||
ffffff ffffff ffffff ffffff ffffff | |||
ffffff ffffff ffffff ffffff ffffff | |||
00ffff 00ffff 00ffff 00ffff 00ffff | 00ffff 00ffff 00ffff 00ffff 00ffff |
Aktuelle Version vom 17. Februar 2008, 21:06 Uhr
Aufbau[Bearbeiten | Quelltext bearbeiten]
Das Format ist äußerst einfach gehalten und für die Ausführung auf Mikrokontrollern optimiert. Es gibt weder Sprünge noch Schleifen, somit kann die Anmations-Datei zeilenweise vom Anfang bis zum Ende ausgelesen werden.
Alle Zeichnungsoperationen werden zunächst in einem nicht sichtbaren Bildspeicher ausgeführt und werden erst auch dem sichtbaren übertragen wenn der Befehl SwapAndWait oder Fade aufgerufen wird.
Zusätzlich zu dem Animationsdateien gibt es auch noch Playlisten. Eine Playlistdatei, ist ein Textdatei in der nur die Dateipfade der abzuspielenden Animationsdateien untereinander aufgelistet werden. Da das Implementierung des Fat-Dateisystems keine langen Dateinamen unterstützt müssen die Dateinamen in dem 8.3 Format von MSDOS angesprochen werden. Außerdem ist der Pfad immer absolut anzugeben. Z.B "anims/neueanim.prn". Der Eintrag in der Playlist ist ebenfalls absolut. Als Verzeichnistrennzeichen wird ein einfaches Slash '/' verwendet.
Achtung es ist auf die richtige Anzahl an Leerzeichen zu achten, da der Parser sehr einfach gehalten ist.
Sprachelemente[Bearbeiten | Quelltext bearbeiten]
Zeilen die mit einer Raute '#' anfangen sind Kommentare.
Farbwerte und Zahlenformate[Bearbeiten | Quelltext bearbeiten]
Farbwerte können mit Hilfe der erweiterbaren Farbpalette oder als RGB Wert angegeben werden.
Ein Farbpalettenwert besteht aus einem druckbaren Zeichen Zeichen (also keine Whitespaces und Zeilenumbrüche).
RGB Farbwerte werden hexadezimal in folgender Form angegeben:
# Blau # Grün| # Rot| | # | | | # v v v ff8800
Dieses Beispiel ergibt eine Farbe mit 100 % Rot, 50 % Grün und 0% Blau.
<uint8_t> steht für vorzeichenlose Ganzzahl mit 8 Bit, d.h. eine Zahl von 0 bis 255.
<uint16_t> steht für vorzeichenlose Ganzzahl mit 16 Bit, d.h. eine Zahl von 0 bis 65535.
Befehle[Bearbeiten | Quelltext bearbeiten]
Nach jedem Befehl kommt eine leere Zeile.
Befehl 'i':
Voxelweise mit RGB Farbwerten den nicht sichtbaren Bildspeicher setzen. Dabei werden wie unten aufgeführt die Ebenen des Würfels von unten nach oben befüllt. Jede Ebene besteht aus 5x5 RGB Farbwerten die durch Leerzeichen und Zeilenumbrüche getrennt sind. Es sind keine führenden Leerzeichen zulässig.
^ 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff y 00aaff 00aaff 00aaff 00aaff 00aaff Unterste Ebene | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | +----------------x------------------> | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff z 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff | | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | 00aaff 00aaff 00aaff 00aaff 00aaff | | 00aaff 00aaff 00aaff 00aaff 00aaff v 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff Oberste Ebene 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff 00aaff
Befehl 'p': Farbpalette erweitern
Für jede Animaionsdatei gibt es eine Farbpalette, in der man einem druckbaren Zeichen einen RGB Farbwert zuweist. Dies ermöglicht eine kürzere Schreibweise
farbKürzel <uint8_t> farbWert <hexByte><hexByte><hexByte>
Zum Beispiel
y ffff00
weist dem Zeichen 'y' die Farbe Gelb zu.
Es können mehrere Farbdefinitionen untereinander aufgeführt werden. Das Zeichen '>' am Anfang einer Zeile markiert das Ende der Farbpalletten Erweiterung.
Zusätzlich sind die folgenden Farbwerte automatisch definiert -'R' Rot -'G' Grün -'B' Blau -'S' Schwarz -'W' Weiß
Befehl 'I': Voxelweise mit Farbpalette das Bild in den ersten Bildbuffer.
Unten ----------- z ----------> Oben ^ X X X X X X X X X X X X X X X X X X X X X X X X X | X X X X X X X X X X X X X X X X X X X X X X X X X y X X X X X X X X X X X X X X X X X X X X X X X X X | X X X X X X X X X X X X X X X X X X X X X X X X X | X X X X X X X X X X X X X X X X X X X X X X X X X +--- x --->
Befehl 'C: Das gesamte Bild mit einem Palettenwert setzen
<zeichen>
Befehl 'c': Das gesamte Bild mit einer RGB-Farbe setzen
<hexByte><hexByte><hexByte>
Befehl 'v' Setzen von einzelnen Voxeln mit RGB Farbwerten.
<x-Koordinate 0 bis 5> <y-Koordinate 0 bis 5> <z-Koordinate 0 bis 5> <hexByte><hexByte><hexByte>
Es können wie bei der Farbpalettenerweiterung mehrere Farbwerte untereinander definiert werden. Das Zeichen '>' am Anfang einer Zeile markiert das Ende.
Befehl 'V' Setzen von einzelnen Voxeln mit Palettenwerten.
<x-Koordinate 0 bis 5> <y-Koordinate 0 bis 5> <z-Koordinate 0 bis 5> <Farbpalettenzeichen>
Es können wie bei der Farbpalettenerweiterung mehrere Farbwerte untereinander definiert werden. Das Zeichen '>' am Anfang einer Zeile markiert das Ende.
Befehl 'S': Die Bildspeicher swapen zwecks double buffering und angegeben Zeit in Milisekunden warten
<uint16_t> Millisekunden
Befehl 'F': Zwischen alten und neuen Bildspeichern in n Schritten a ms Millisekunden morphen/faden
<uint16_t> Millisekunden ms <uint16_t> Anzahl Schritte n
Zusätzlich gibt es auch noch Playlist Dateien. Diese haben die Endung .apl, für Animation Playlist. in Ihnen sind Kommentar durch ein #-Zeichen am Anfang der Zeile möglich. In jeder Zeile kann dort der Pfad zu einer .anim Datei (inclusive .anim) stehen, die allesamt nacheinander abgespielt werden.
Beispiel Video[Bearbeiten | Quelltext bearbeiten]
C S S 250 S 250 V 0 0 0 W 2 2 2 R 4 4 4 W > S 250 S 250 v 1 1 1 0055ff 3 3 3 0055ff 2 1 2 0055ff > S 250 S 250 p y ffff00 t 00ffff m ff00ff > I y S R S m y S S S m y S S S m y S S S m y S R S m S R S R S S S R S S S S S S S S S R S S S R S R S R S t S R S R S R S S S R S S S R S R S R S t S S S R S R S S S R S S S S S S S S S R S S S R S R S m S R S y m S S S y m S S S y m S S S y m S R S y F 40 20 S 255 S 255 i ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff ffffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff 00ffff F 40 20 S 5000 C S F 40 20