Farbborg-Animationsformat: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
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 zur Ausführung auf Microcontrollern optimiert. Es gibt keine Sprünge oder Schleifen, somit kann die Anmationsdatei zeilenweise ausgelesen werden.
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 ein CariageReturn  \b
Nach jedem Befehl kommt eine leere Zeile.


'''Befehl 'i'''':


'''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 das Bild in den ersten Bildbuffer bringen
      
      
  ^ 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 "p"''': Farbpalette erweitern
 
Für jede Animaionsdatei gibt es eine Farbpallete, in der man einem druckbaren Zeichen einen RGB Farbwert zuweist. Dies ermöglicht eine kürzere Schreibweise
'''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>


Zusätzlich sind da  die folgenden Farbwerte automatisch definiert
Zum Beispiel
-R Rot  
  y ffff00
-G Grün
weist dem Zeichen 'y' die Farbe Gelb zu.
-B Blau
-S Schwarz
-W Weiß 
   
Das Zeichen > markiert das Ende der Farbpalletten Erweiterung


""Befehl "I""" : Voxelweise mit Farbpallette das Bild in den ersten Bildbuffer.
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 sezten
'''Befehl 'C''': Das gesamte Bild mit einem Palettenwert setzen
<uint_8>
 
<zeichen>


'''Befehl 'c'''': Das gesamte Bild mit einer RGB-Farbe setzen  
'''Befehl 'c'''': Das gesamte Bild mit einer RGB-Farbe setzen  
<hexByte> <hexByte> <hexByte>


'''Befehl 'S'''': Die Bildspeicher swapen zwecks double buffering und angegeben Zeit warten
<hexByte><hexByte><hexByte>
<uint16_t> Milisekunden
 
'''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
<uint16_t> Milisekunden      ms
<uint16_t> Anzahl Schritte  n


Zusätzlich gibt es auch noch Playlist Dateien. Diese haben die Endung .apl, fpr animation Plaliste. 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.
<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 ==


# Beispiel Video
  C  
  C  
  S
  S
Zeile 147: Zeile 196:
   
   
  i
  i
  00ffff 00ffff 00ffff 00ffff 00ffff
  ffffff ffffff ffffff ffffff ffffff
  00ffff 00ffff 00ffff 00ffff 00ffff
  ffffff ffffff ffffff ffffff ffffff
  00ffff 00ffff 00ffff 00ffff 00ffff
  ffffff ffffff ffffff ffffff ffffff
  00ffff 00ffff 00ffff 00ffff 00ffff
  ffffff ffffff ffffff ffffff ffffff
  00ffff 00ffff 00ffff 00ffff 00ffff
  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