Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
logo
    3D Animationen mit POV-Ray
        Grundlagen und Beispiele zu Animationen.
English English English
Italiano Italiano
Français français
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
                                                     

Geschwindigkeitssteuerung
mittels Spline-Funktionen
Nichtlineare Bewegungen in Animationen
zur Simulation von realistischem Beschleunigung/Verzögerung(Bremsen)
mittels der Spline-Funktion in POV-Ray.

Die Spline-Funktion zur Bewegungsteuerung
Mit dieser Funktion lassen sich realistische Bewegungsabläufe ohne irgendwelche Berechnungen mit Bewegungsgleichungen sehr einfach erzeugen.
Beispiel: Eine Kugel wird entlang der x-Achse bewegt.
Dazu legen wir eine Reihe von Punkten fest, an denen sich die Kugel jeweils befinden soll. Dabei läuft die Zeitskala von 0 bis 1 in gleichen Schritten von jeweils 0,100.
//----------------------------------------
// coordinates for the points of a spline
#declare P0 = <-0.50, 0, 0>;//control
#declare P1 = < 0.00, 0, 0>;
#declare P2 = < 0.50, 0, 0>;
#declare P3 = < 1.00, 0, 0>;
#declare P4 = < 1.50, 0, 0>;
#declare P5 = < 2.00, 0, 0>;
#declare P6 = < 5.00, 0, 0>;
#declare P7 = < 8.00, 0, 0>;
#declare P8 = < 8.50, 0, 0>;
#declare P9 = < 9.00, 0, 0>;
#declare P10= < 9.50, 0, 0>;
#declare P11= <10.00, 0, 0>;
#declare P12= <10.50, 0, 0>;//control

#declare Spline_1 =
  spline {
    natural_spline
   -0.100, P0, // control point
    0.000, P1, // starting point
    0.100, P2,
    0.200, P3,
    0.300, P4,
    0.400, P5,
    0.500, P6,
    0.600, P7,
    0.700, P8,
    0.800, P9,
    0.900, P10,
    1.000, P11, // end point
    1.100, P12  // control point
  }// end of spline ---------------
//---------------------------------------
Bemerkung 1: Für einen Spline vom Typ 'natural_spline' benötigen wir
die Kontrollpunkte 'P0' und 'P12' vor dem Anfang und hinter dem Ende des Splines.
Die Werte der Spline-Funktion sind hier zwischen 'P1' und 'P11' definiert.
Bemerkung 2: Die Zeitwerte laufen von -0.1 bis 1.1 in Schritten von jeweils 0,100.
Spline points
Der folgende Test zeigt die Punkte, welche den Spline bestimmen:
(Dieser Abschnitt kann mittels '/* */' herauskommentiert werden, wenn sonst alles gut läuft!)
//----------------------------------------
// visual test of the spline points
#declare Marker   =
 sphere{<0,0,0>,0.05 pigment{Red}}
#declare Marker_C =
 sphere{<0,0,0>,0.05 pigment{Yellow}}
//--------- set msrkers:
object{ Marker_C translate P0 }
object{ Marker translate P1 }
object{ Marker translate P2 }
object{ Marker translate P3 }
object{ Marker translate P4 }
object{ Marker translate P5 }
object{ Marker translate P6 }
object{ Marker translate P7 }
object{ Marker translate P8 }
object{ Marker translate P9 }
object{ Marker translate P10 }
object{ Marker translate P11 }
object{ Marker_C translate P12 }
// end test of the spline
//---------------------------------------

Jetz kann man die Kugel in Bewegung versetzen durch
eine Animation mit den 'clock'-Wert der von 0 bis 1 läuft.
//----------------------------------------
// The moving sphere:
sphere{ <0,0,0>,0.5
  texture{
    pigment{ rgb<1.0,1.0,1>*0.05 }
    finish { phong 1 reflection{ 0.1 } }
    translate<0,0.5,0>
    translate Spline_1(clock)
      } // end of sphere
//---------------------------------------
Spline move
Szenenbeschreibung
für POV-Ray:
"Spline_move_1.ini" und
"Spline_move_1.pov"

Spline move
Szenenbeschreibung für POV-Ray:
"Spline_move_1.ini" und "Spline_move_1.pov"
top

© Friedrich A. Lohmüller, 2012
http://www.f-lohmueller.de