Home
- Animationen Galerie
- POV-Ray Tutorial
3D Animation
Inhaltsübersicht
0. Grundlagen
1. Beispiel
2. Beispiel 2
3. Bilder zu animierte Gif
4. Von Bildern zum Video
5. Grundbegriffe
> 6. Animationsbefehle
I. Zyklische Animationen
1. Objekt-Rotation
1.2. Planeten im Orbit
1.3. Animierte Uhr
2. Kamera-Rotation
2.1. Kamera Geradeausflug
3. Western-Kutschen
-Problem
3.1. Rollende Räder
4. Zahnradgetriebe
4.1. Rollende Kette
4.2. Fahrradkette
5. Pendelschwingung
5.1. Newtonpendel
5.2: Schaukelstuhl
6. Federpendel
7. Koppelstange
7.1. Pleuelstange
8. Psychedelic + Op-Art
9. Zähler + Countdowns
10. Faltung eines Würfels
II. Nichtlineare Bewegungen
1.0 Beschleunigung
+Bremsen 1
1.1 Beschleunigung
+ Bremsen 2
2. Fallen + Hüpfen
3. Beschleunigung nach
physikalischen Formeln
4. Geschwindigkeitssteuerung
mit Spline-Funktionen
III. Animationspfade mit Spline-Kurven
1. Spline-Kurven
2. Geschlossene Splines
3. Animationspfade
|
|
Animationsbefehle
für POV-Ray Szenen-Dateien und Animations-ini-Dateien. |
|
Befehle für die Animation-ini-Dateien:
Grundsätzliche Animationsbefehle:
Man benutzt ";" anstatt "//" für Kommentarzeilen in POV-Ray ini-Dateien!
Input_File_Name="sphere.pov"
; The name of the POV-Ray file to render.
Initial_Frame=1 ; Start mit frame_number 1
Final_Frame=10 ; Ende mit frame_number 10
Initial_Clock=0 ; Start mit clock-Wert 0
Final_Clock=1 ; Ende mit clock-Wert 1 !
Cyclic_Animation=On ; "On" oder "Off"
Dies ist sehr nützlich bei zyklischen Animationen wie z.B.
dem Drehen eines Objekts um 360 Grad:
Es bewirkt dass der clock-Unterschied 1 bei einer
Frame-Anzahl von 10 in z.B. 10 Abschritte unterteilt wird
ein Rendern mit den clock-Werten
clock = 0.0, 0.1, 0.2, ..... , 0.8, 0.9, aber nicht mit 1.0!
Dadurch wird sich mit rotate<0,clock*360,0> ein Objekt
um 0, 36, 72, 108, 144, 180, 216, 252, 288, 324 Grad drehen,
aber nicht um 360 Grad, denn dies wäre dasselbe wie der erste Frame!
Antialiasing Befehle:
Antialias=On ; Schalten Sie dies für Tests komplexer Szenen aus!
Antialias_Threshold=0.3
Antialias_Depth=3
Kurze Erläuterung:
Antialiasing ist eine Methode mit der man
das treppige Aussehen schräger Linien, das unterbrochene Aussehen dünner Linien und Moiré-Muster durch Interferenzen
stark reduzieren kann indem man zum Berechnen einer Pixelfarbe einen Mittelwert mehrerer Teststrahlen verwendet.
"Antialias_Depth=3" bedeutet POV-Ray benutzt ein 3x3 Raster für ein Pixel
aber das bedeutet auch, dass es 3x3 = 9 mal mehr zu berechnen gibt!
"Antialias_Threshold=0.3" bedeutet das Antialiasing beginnt (wenn "Antialias=On" gesetzt ist)
nur wenn die Differenz zweier Pixel größer als 0.3 ist.
Zusätzliche Animationsbefehle:
Befehle für partielles Rendern:
Subset_Start_Frame=11
Subset_End_Frame=27
Damit kann man auch nur Teile einer Animation rendern ohne clock oder die Framerate zu ändern.
Frame_Step=3
Damit kann man auch nur jeder 3. Frame gerendert werden (default = 1).
Befehle zur Gamma-Korrektur:
Neu bei POV-Ray Version 3.7 !
Display_Gamma=1.5 ;verwendet ein Display-Gamma von 1.5
File_Gamma=1.5 ;wendet Gamma für die Bilddatei an.
|
"sphere.ini"
; POV-Ray animation ini file
Antialias=Off
Antialias_Threshold=0.1
Antialias_Depth=2
Input_File_Name=sphere1.pov
Initial_Frame=1
Final_Frame=30
Initial_Clock=0
Final_Clock=1
Cyclic_Animation=on
Pause_when_Done=off | |
Grundsätzliche Animationbefehle
"sphere.ini" - erweitert
; Persistence Of Vision raytracer
; version 3.6/3.7
; animation ini example file.
;Display_Gamma=1.5
;File_Gamma=1.5 ; only in version 3.7
Antialias=Off
Antialias_Threshold=0.3
Antialias_Depth=3
Input_File_Name=animation2.pov
Initial_Frame=1
Final_Frame=30
Initial_Clock=0
Final_Clock=1
;Subset_Start_Frame=11
;Subset_End_Frame=30
Cyclic_Animation=on
Pause_when_Done=off
| |
Zusätzliche Animationbefehle
|
|
Animations-Werte für den Gebrauch in POV-Ray-Szenendateien.
Die folgenden Animations-Werte kann man in POV-Ray-Szenendateien (.pov) verwenden um damit den Ablauf des
Animationsverlufes zu steuern.
(Achtung: Diese Werte werden aus den gesetzten Animationsoptionen in der ini-Datei gelesen. Man kann die Werte
dieser Variablen nicht in .pov-Dateien neu deklarieren!)
Werte für clock-basierende Animationen:
clock der aktuelle "clock"-Wert
initial_clock ; der Startwert von "clock"
final_clock ; der Endwert von"clock"
(Der tatsächlich noch gerenderte Endwert hängt von "Cyclic_Animation=On/Off" ab!)
Der "clock"-Wert ist die komfortabelste Art eine Animation
unabhängig von der verwendeten gesamten Anzahl der Frames zu steuern.
Wir können dadurch Animationen mit einer kleinen Anzahl von Frames testen.
z.B. initial_frame = 1 , final_frame = 20 und die Anzahl der Frames später so hoch setzen wie benötigt.
Das Erhöhen der Frame-Gesamtzahl reduziert die Geschwindigkeit einer Animation, die Reduktion
beschleunigt eine Animation.
Werte für frame_number-basierende Animationen:
frame_number ; Die Nummer des aktuell gerenderten Frames!
Dies ist nützlich, wenn wir eine bestimmte Anzahl von Einzelbildern in festen Schritten rendern wollen.
z.B. bei einem LCD-Zähler oder bei Frame-für-Frame bereits animierten Elementen die von anderen
3D-Programmen wie Poser importiert werden.
initial_frame ; Die Nummer des ersten Frames
final_frame ; Die Nummer des letzten Frames
clock_delta ; liefert den Betrag der "Zeit" zwischen den "clock"-Werten
einer Animation in POV-Ray.
clock_on ; mit diesem booleschen Wert kann man den Status von "clock"
überprüfen: 1 ist an, 0 ist aus.
|
sphere { <0,0,0>, 0.15
pigment{ color rgb<1,0,0>}
translate<1,0,0>
rotate<0,360*(clock+0.00),0>
} // end of sphere ---------
| |
Beispiel Rotation mit clock
sphere { <0,0,0>, 0.15
pigment{ color rgb<1,0,0>}
translate<-1+3*clock,00>
} // end of sphere ----------
| |
Beispiel Translation mit clock
text { ttf "arial.ttf",
str(frame_number,0,0),0.1,0
pigment{ color rgb<1,1,1> }
scale<1,2,1>*0.5
translate<-2.4,0.25,0.3>
} // end of text object ----------
| |
Beispiel für animiertes Objekt mittels frame_number
|
|