Dieser Vorgang muss nur ausgeführt werden, wenn im Laufwerk C: kein Ordner POV-Ray existiert.
Grundstruktur:
// Kamera camera { sky <0,0,1> // Vektor, der festlegt, wo oben ist. right <-4/3,0,0> // Bildverhältnis 4:3, plus Spiegelung für rechtsdrehendes System location <20,8,18> // Position der Kamera look_at <0, 0, 1> // Blickrichtung (erscheint im Bildmittelpunkt) angle 30 // Öffnungswinkel der Kamera } // Lichtquellen light_source { <12,-2,12> // Position des Lichts color rgb <1,1,1> // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1) } light_source { <13,10,13> // Position des Lichts color rgb <1,1,1> // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1) } // Boden (xy-Ebene, kariert mit Quadraten von Seitenlänge 1) plane { z,0 // Ebene, senkrecht zu z=<0,0,1>, mit Abstand 0 zum Ursprung pigment { // Schachbrett checker color rgb <1,1,1>, color rgb <0.2,0.2,0.2> } finish { reflection 0.4 } } // Ende Boden
Erst werden die Parameter der Aufgabe festgelegt, dann eine Person definiert (kann noch beliebig verkompliziert werden) und schliesslich die beiden Personen dargestellt.
Um die Animation zu rendern, muss in POV-Ray noch die Option “+KFF20” eingetragen werden, damit z.B. 20 Bilder erzeugt werden.
// TODO // HIER FEHLT NOCH KAMERA, LICHT UND BODEN #declare oa=<0,4,0>; // Startposition A #declare va=<1,0,0>; // Geschwindigkeitsvektor A #declare ob=<3,0,0>; // Startposition B #declare vb=<0,1,0>; // Geschwindigkeitsvektor B #declare zeit=clock*6; // Total 6 Sekunden simulieren #declare person=union { // Person, zentriert auf <0,0,0>, Blickrichtung in x-Richtung box { <-0.15,-0.3,0>, <0.15,0.3,1.7> } } // Ende union Person // Person A object { person // TODO // translate HIER DIE POSITION AUS DER zeit BERECHNEN pigment { color rgb <1,0,0> } } // Ende Person A object { person rotate 90*z // damit die Person in y-Richtung schaut. // TODO // translate HIER DIE POSITION AUS DER zeit BERECHNEN pigment { color rgb <0,1,0> } } // Ende Person A
Wer möchte, kann sich überlegen, wie man noch Beine animieren könnte. Dazu eignet sich die Modulo-Funktion:
#declare beinzeit = mod(zeit,1.0); // Liefert die Nachkommastellen // TODO // AUS beinzeit DIE POSITION DER FUESSE BERECHNEN
C:\ffmpeg-20180831-3ad0e67-win64-static\bin\ffmpeg.exe -i .\aufgabe441og%02d.png movie.mp4