Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
Stereo-Bilder und Stereo-Animationen mit POV-Ray -
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial

  Stereo-Bilder und
  Stereo Animationen
    Inhalt

    Kreuzblick (Cross-Eye)
    Stereo-Bilder basic
    Stereo-Bilder advanced
    Bildpaare kombinieren
 > Stereo-Animation 1
    Stereo-Animation 2
    Beispiele Stereo-Anims
 
                                                 
Stereo-Animation (1)

Wie macht man
eine Serie von Stereo-Bildern für eine Animation.
1.1 Erstellung einer POV-Ray-Stereo-Szenendatei
                  wie in 'Stereobilder advanced' gezeigt.
Hierbei verwenden wir die 'frame_number' um zu steuern, ob
ein rechtsäugiger oder linksäugiger Blick gerendert werden soll:
  ungerade Frame-Nummer 1, 3, 5, ... = rechtes Auge,
      gerade Frame-Nummer 2, 4, 6, ... = linkes Auge,
frame_number 0 = Nicht-Stereo-Ansicht zum Testen der Szene.
Für eine Animation von z.B. 30 frames,
müssen wir somit 2*30=60 frames rendern !
Animation mit 'clock' und 'frame_number':
  1. frame_number basierende Animationssteuerung:
Hier müssen wir eine neue frame-Nummer namens Frame verwenden.
Für gerade frame-Nummern:
                #declare Frame = int( frame_number/2 );
andernfalls #declare Frame = int((frame_number+1)/2);
und als neue "final frame number":
       #declare EndFrame = final_frame/2;
  2. clock basierende Animationssteuerung:
Hier müssen wir clock_delta verwenden, um die
interne Zeit (hier: 'Time') den clock-Werten anzupassen!
(built-in clock_delta = Unterschied zwischen den clock-Werten)
Mit z.B. Initial_Clock=0, Final_Clock=1,
          Initial_Frame=1 und Final_Frame=60,
verwenden wir für die ungeraden frame_number:
       #declare Time = clock ;

     und für die geraden frame_number:
       #declare Time = clock - clock_delta;


In einer POV-Ray-Szenendatei Stereo_Ani_00_.pov
deklarieren wir eine Stereokamera wie folgt:
(Zu Details siehe Szenendateien rechts !!!!)
// -------------------- // stereo view:
#declare Stereo_On = 1;
#if( Stereo_On = 1 )
 #declare Eye_Distance = 0.4;
 // Stereo Animations frame counting:
 // stereo starts: frame_number = 1
 // odd frame numbers 1,3,5,... = right
 // even frame number 2,4,6,... = left
 // stereo: frame 1~60 -> frame pair = 1~30!
 #if((frame_number/2)!=int(frame_number/2))
      // odd frame_number
  #declare Eye_Distance =-Eye_Distance;
  #declare Time  = clock  ;
  #declare Frame = (frame_number+1)/2 ;
 #else // even frame_number
  #declare Eye_Distance =+Eye_Distance;
  #declare Time  = clock - clock_delta ;
  #declare Frame = (frame_number  )/2 ;
 #end
 #declare EndFrame =  final_frame/2;

#else // Stereo_On = 0
 #declare Eye_Distance = 0;
 #declare Time     = clock +0.0 ;
 #declare Frame    = frame_number  ;
 #declare EndFrame = final_frame ;
#end // of "#if( Stereo_On = 1 ) "
//------------------------------------------
#declare Camera_Position= < 0.0, 2.0,-4.0>;
#declare Camera_Look_At = < 0.0, 2.0, 0.0>;
#declare Camera_Angle   = 65 ;
//------------------------------------------
camera{
  location Camera_Position
    + Eye_Distance/2
    * vnormalize(
        vcross(
         Camera_Look_At-Camera_Position,
         <0,1,0>
        )// vcross
      )// vnormalize
  right    x*image_width/image_height
  angle    Camera_Angle
  look_at  Camera_Look_At
} // end camera
// .... lights and background ...
// .... and an object in scene:
object{
  Wire_Box(<-1,-1,-1>,<1,1,1>,0.1,0)
  texture{pigment{color rgb<1,1,1>*1.2}}
  #if(frame_number != 0)// stereo
       rotate<0, Time*90 ,0>
     // or optional:
    // rotate<0,(Frame-1)/EndFrame*90,0>
  #end
  translate<0,2.0,0>
} // ---------------------------------------
  Für ein quadratisches Rendering, verwenden wir die Kommandozeile:
" +w240 +h240 ".
Mit POV-Ray 3.7 mit jpeg-Output auch
" +w240 +h240 +fj100 ".

command line
Die Befehlszeile.
image for image_map
Die Situation der freibeweglichen Kamera:
nicht-stereo camera location (violet),
Positionen des rechten und linken Auges (yellow/red),
freibeweglicher look_at-Punkt (yellowgreen).










POV-Ray 3.6 / 3.7
Stereo-Szenendatei: Stereo_Ani_00_.pov
Stereo-Animations-Ini-Datei: Stereo_Ani_00_.ini







non-stereo image
Diese Szene in nicht-stereo.
Gerendert mit der Szenendatei.
Wird nicht die Ini-Datei gestartet, dann
ist frame_number=0 (default). Daher ist
Half_Eye_Distance=0 und dies zeigt
die Szene in nicht-stereo Ansicht.
1.2: Erstellung einer Stereo-Animation-Ini-Datei
              Dateiname: Stereo_Ani_00_.ini:
Antialias=On
Antialias_Threshold=0.3
Antialias_Depth=3
Input_File_Name=Stereo_Ani_00_.pov
Initial_Frame=1
Final_Frame=60
; 1~60 for 30 images
Initial_Clock=0
Final_Clock=1
Cyclic_Animation=on
Pause_when_Done=off
Anmerkung: frame_number 0 ist reserviert für Nicht-Stereo-Blick!
Das Starten dieser Datei in POV-Ray
erzeugt eine Serie vom 30 Stereo-Bildpaaren:
    30 rechtsäugige: Nummern 01,03,05,...,29
und 30 linksäugige : Nummern 02,04,06,...,30.

POV-Ray 3.6 / 3.7
Stereo-Szenendatei: Stereo_Ani_00_.pov
Stereo-Animations-Ini-Datei: Stereo_Ani_00_.ini
image of the right eye's view
Blick für das rechte Auge.
Stereo_Ani_00_01.jpg
image of the left eye's view
Blick für das linke Auge.
Stereo_Ani_00_02.jpg

Weiter mit 2.1: Zusammenfügen von Stereo-Bildpaaren
top

© Friedrich A. Lohmüller, 2013
www.f-lohmueller.de