<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.povray.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cruxic</id>
	<title>POV-Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.povray.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cruxic"/>
	<link rel="alternate" type="text/html" href="https://wiki.povray.org/content/Special:Contributions/Cruxic"/>
	<updated>2026-04-17T03:15:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.povray.org/content?title=HowTo:Encode_animations_as_Ogg_Theora_Video&amp;diff=481</id>
		<title>HowTo:Encode animations as Ogg Theora Video</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=HowTo:Encode_animations_as_Ogg_Theora_Video&amp;diff=481"/>
		<updated>2008-03-16T15:23:07Z</updated>

		<summary type="html">&lt;p&gt;Cruxic: Edited to use the conventional .ogv extension&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As illustrated in the other tutorials, POV-Ray only renders the individual frames of an animation.  It is up to you to compile these frames into an animation file that you can view and share with others.  [http://www.theora.org/ Ogg Theora] is a good choice if you need higher image quality than GIF can provide.  Theora is a non-proprietary video format so you won't need to worry about licensing and royalties if you go commercial with your work.&lt;br /&gt;
&lt;br /&gt;
== Animate Your Frames ==&lt;br /&gt;
The following instructions assume you have a directory containing the image frames created with POV-Ray.  See the bottom of this page if you need help with this step.&lt;br /&gt;
&lt;br /&gt;
== Encoding Under Linux ==&lt;br /&gt;
Instructions for encoding on the Linux platform:&lt;br /&gt;
&lt;br /&gt;
=== Install the tools ===&lt;br /&gt;
You'll need the following command-line tools installed:&lt;br /&gt;
* '''png2yuv''' (Part of the [http://mjpeg.sourceforge.net/ MJPEG Tools project].  Under Ubuntu/Debian simply install the ''mjpegtools'' package.)&lt;br /&gt;
* '''ffmpeg2theora''' ([http://v2v.cc/~j/ffmpeg2theora/ ffmpeg2theora home page].  Under Ubuntu/Debian simply install the ''ffmpeg2theora'' package.)&lt;br /&gt;
&lt;br /&gt;
=== Encode! ===&lt;br /&gt;
'''1)''' Open a command shell to the directory containing your image frames.  (Note: the frames must be in PNG format (POV-Ray default).)&lt;br /&gt;
&lt;br /&gt;
'''2)''' Compile the frames to the intermediate YUV4MPEG stream format:&lt;br /&gt;
&lt;br /&gt;
 png2yuv -I p -f 25 -j cube%02d.png -b 1 &amp;gt; tmp.yuv&lt;br /&gt;
&lt;br /&gt;
Explanation of command:&lt;br /&gt;
* '''-I p''' - no interlacing&lt;br /&gt;
&lt;br /&gt;
* '''-f 25''' - Frame-rate (25 fps).  25 fps is good for motion video.&lt;br /&gt;
&lt;br /&gt;
* '''cube%02d.png''' - Frame file name pattern.  This says our files are named cube00.png through cube99.png.  (png2yuv will stop when it finds no more numbers).  If you had hundreds of frames you would specify: %03d,  thousands: %04d, and so on.&lt;br /&gt;
&lt;br /&gt;
* '''-b 1''' - Start on cube01.png rather than cube00.png (because we don't have cube00.png)&lt;br /&gt;
&lt;br /&gt;
* '''&amp;gt; tmp.yuv''' - Redirect the output to a file.&lt;br /&gt;
&lt;br /&gt;
'''3)''' Compress into Theora format:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg2theora --optimize --videoquality 10 --videobitrate 16778 -o MyAnim.ogv tmp.yuv&lt;br /&gt;
&lt;br /&gt;
Explanation of command:&lt;br /&gt;
* '''--optimize --videoquality 10 --videobitrate 16778''' - This is my attempt to give the highest video quality.  Type ffmpeg2theora --help for a description of the parameters (or man ffmpeg2theora).&lt;br /&gt;
* '''-o MyAnim.ogv''' - The output file name.  (I believe '''.ogv''' is the [http://en.wikipedia.org/wiki/Ogg conventional extension for Ogg Theora video])&lt;br /&gt;
* '''tmp.yuv''' - the input file (the one we created with png2yuv).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Encoding On other Operating Systems ==&lt;br /&gt;
TODO.  This is a wiki so contributors are welcome to fill this in.&lt;br /&gt;
&lt;br /&gt;
== View It! ==&lt;br /&gt;
You should now have ''MyAnim.ogv'' waiting to be viewed.  I used the [http://www.gnome.org/projects/totem/ Totem] program to view it under Linux.  Here's a [http://www.theora.org/faq/#40 page listing other players].&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Example) ==&lt;br /&gt;
[[Image:theora_example_frame.png]]&lt;br /&gt;
&lt;br /&gt;
If you need an example pov script to create the animation frames...&lt;br /&gt;
# Save the following two files to a temporary folder&lt;br /&gt;
# Open a command shell to the folder and type:&lt;br /&gt;
# povray cube.ini +W320 +H240&lt;br /&gt;
# After rendering you should 50 png image files (cube01.png - cube50.png)&lt;br /&gt;
# Use above instructions to encode the frames&lt;br /&gt;
&lt;br /&gt;
=== cube.pov ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
global_settings {&lt;br /&gt;
   assumed_gamma 1.5&lt;br /&gt;
   noise_generator 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
box {&lt;br /&gt;
   &amp;lt;-0.5, -0.5, -0.5&amp;gt;, &amp;lt;0.5, 0.5, 0.5&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   pigment {&lt;br /&gt;
      color rgb &amp;lt;0.3, 1, 0.3&amp;gt;&lt;br /&gt;
   }&lt;br /&gt;
   scale 1&lt;br /&gt;
   rotate&amp;lt;0, 360*(clock+0.00), 0&amp;gt;&lt;br /&gt;
   translate y*0.5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
light_source {&lt;br /&gt;
   &amp;lt;4, 5, -5&amp;gt;, rgb &amp;lt;1, 1, 1&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
camera {&lt;br /&gt;
   perspective&lt;br /&gt;
   location &amp;lt;2, 2, 2&amp;gt;&lt;br /&gt;
   sky &amp;lt;0, 1, 0&amp;gt;&lt;br /&gt;
   direction &amp;lt;0, 0, 1&amp;gt;&lt;br /&gt;
   right &amp;lt;1.3333, 0, 0&amp;gt;&lt;br /&gt;
   up &amp;lt;0, 1, 0&amp;gt;&lt;br /&gt;
   look_at &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
plane {&lt;br /&gt;
   &amp;lt;0, 1, 0&amp;gt;, 0&lt;br /&gt;
   &lt;br /&gt;
   pigment {&lt;br /&gt;
      color rgb &amp;lt;0, 0.784314, 1&amp;gt;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   finish {&lt;br /&gt;
      reflection {&lt;br /&gt;
         rgb &amp;lt;1, 1, 1&amp;gt;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   scale 1&lt;br /&gt;
   rotate &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
   translate y*(-0.25)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cube.ini ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
; POV-Ray animation ini file&lt;br /&gt;
Antialias=On&lt;br /&gt;
Antialias_Threshold=0.1&lt;br /&gt;
Antialias_Depth=2&lt;br /&gt;
&lt;br /&gt;
Input_File_Name=cube.pov&lt;br /&gt;
&lt;br /&gt;
Initial_Frame=1&lt;br /&gt;
Final_Frame=50&lt;br /&gt;
Initial_Clock=0&lt;br /&gt;
Final_Clock=1&lt;br /&gt;
&lt;br /&gt;
Cyclic_Animation=on&lt;br /&gt;
Pause_when_Done=off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cruxic</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=HowTo:Encode_animations_as_Ogg_Theora_Video&amp;diff=480</id>
		<title>HowTo:Encode animations as Ogg Theora Video</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=HowTo:Encode_animations_as_Ogg_Theora_Video&amp;diff=480"/>
		<updated>2008-03-16T15:08:30Z</updated>

		<summary type="html">&lt;p&gt;Cruxic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As illustrated in the other tutorials, POV-Ray only renders the individual frames of an animation.  It is up to you to compile these frames into an animation file that you can view and share with others.  [http://www.theora.org/ Ogg Theora] is a good choice if you need higher image quality than GIF can provide.  Theora is a non-proprietary video format so you won't need to worry about licensing and royalties if you go commercial with your work.&lt;br /&gt;
&lt;br /&gt;
== Animate Your Frames ==&lt;br /&gt;
The following instructions assume you have a directory containing the image frames created with POV-Ray.  See the bottom of this page if you need help with this step.&lt;br /&gt;
&lt;br /&gt;
== Encoding Under Linux ==&lt;br /&gt;
Instructions for encoding on the Linux platform:&lt;br /&gt;
&lt;br /&gt;
=== Install the tools ===&lt;br /&gt;
You'll need the following command-line tools installed:&lt;br /&gt;
* '''png2yuv''' (Part of the [http://mjpeg.sourceforge.net/ MJPEG Tools project].  Under Ubuntu/Debian simply install the ''mjpegtools'' package.)&lt;br /&gt;
* '''ffmpeg2theora''' ([http://v2v.cc/~j/ffmpeg2theora/ ffmpeg2theora home page].  Under Ubuntu/Debian simply install the ''ffmpeg2theora'' package.)&lt;br /&gt;
&lt;br /&gt;
=== Encode! ===&lt;br /&gt;
'''1)''' Open a command shell to the directory containing your image frames.  (Note: the frames must be in PNG format (POV-Ray default).)&lt;br /&gt;
&lt;br /&gt;
'''2)''' Compile the frames to the intermediate YUV4MPEG stream format:&lt;br /&gt;
&lt;br /&gt;
 png2yuv -I p -f 25 -j cube%02d.png -b 1 &amp;gt; tmp.yuv&lt;br /&gt;
&lt;br /&gt;
Explanation of command:&lt;br /&gt;
* '''-I p''' - no interlacing&lt;br /&gt;
&lt;br /&gt;
* '''-f 25''' - Frame-rate (25 fps).  25 fps is good for motion video.&lt;br /&gt;
&lt;br /&gt;
* '''cube%02d.png''' - Frame file name pattern.  This says our files are named cube00.png through cube99.png.  (png2yuv will stop when it finds no more numbers).  If you had hundreds of frames you would specify: %03d,  thousands: %04d, and so on.&lt;br /&gt;
&lt;br /&gt;
* '''-b 1''' - Start on cube01.png rather than cube00.png (because we don't have cube00.png)&lt;br /&gt;
&lt;br /&gt;
* '''&amp;gt; tmp.yuv''' - Redirect the output to a file.&lt;br /&gt;
&lt;br /&gt;
'''3)''' Compress into Theora format:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg2theora --optimize --videoquality 10 --videobitrate 16778 -o MyAnim.theora tmp.yuv&lt;br /&gt;
&lt;br /&gt;
Explanation of command:&lt;br /&gt;
* '''--optimize --videoquality 10 --videobitrate 16778''' - This is my attempt to give the highest video quality.  Type ffmpeg2theora --help for a description of the parameters (or man ffmpeg2theora).&lt;br /&gt;
* '''-o MyAnim.theora''' - The output file name.  (I'm not sure if .theora is the standard extension for theora videos.  I've seen .ogg used as well but didn't want to confuse it with ogg vorbis audio files.)&lt;br /&gt;
* '''tmp.yuv''' - the input file (the one we created with png2yuv).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Encoding On other Operating Systems ==&lt;br /&gt;
TODO.  This is a wiki so contributors are welcome to fill this in.&lt;br /&gt;
&lt;br /&gt;
== View It! ==&lt;br /&gt;
You should now have ''MyAnim.theora'' waiting to be viewed.  I used the [http://www.gnome.org/projects/totem/ Totem] program to view it under Linux.  Here's a [http://www.theora.org/faq/#40 page listing other players].&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Example) ==&lt;br /&gt;
[[Image:theora_example_frame.png]]&lt;br /&gt;
&lt;br /&gt;
If you need an example pov script to create the animation frames...&lt;br /&gt;
# Save the following two files to a temporary folder&lt;br /&gt;
# Open a command shell to the folder and type:&lt;br /&gt;
# povray cube.ini +W320 +H240&lt;br /&gt;
# After rendering you should 50 png image files (cube01.png - cube50.png)&lt;br /&gt;
# Use above instructions to encode the frames&lt;br /&gt;
&lt;br /&gt;
=== cube.pov ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
global_settings {&lt;br /&gt;
   assumed_gamma 1.5&lt;br /&gt;
   noise_generator 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
box {&lt;br /&gt;
   &amp;lt;-0.5, -0.5, -0.5&amp;gt;, &amp;lt;0.5, 0.5, 0.5&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   pigment {&lt;br /&gt;
      color rgb &amp;lt;0.3, 1, 0.3&amp;gt;&lt;br /&gt;
   }&lt;br /&gt;
   scale 1&lt;br /&gt;
   rotate&amp;lt;0, 360*(clock+0.00), 0&amp;gt;&lt;br /&gt;
   translate y*0.5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
light_source {&lt;br /&gt;
   &amp;lt;4, 5, -5&amp;gt;, rgb &amp;lt;1, 1, 1&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
camera {&lt;br /&gt;
   perspective&lt;br /&gt;
   location &amp;lt;2, 2, 2&amp;gt;&lt;br /&gt;
   sky &amp;lt;0, 1, 0&amp;gt;&lt;br /&gt;
   direction &amp;lt;0, 0, 1&amp;gt;&lt;br /&gt;
   right &amp;lt;1.3333, 0, 0&amp;gt;&lt;br /&gt;
   up &amp;lt;0, 1, 0&amp;gt;&lt;br /&gt;
   look_at &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
plane {&lt;br /&gt;
   &amp;lt;0, 1, 0&amp;gt;, 0&lt;br /&gt;
   &lt;br /&gt;
   pigment {&lt;br /&gt;
      color rgb &amp;lt;0, 0.784314, 1&amp;gt;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   finish {&lt;br /&gt;
      reflection {&lt;br /&gt;
         rgb &amp;lt;1, 1, 1&amp;gt;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   scale 1&lt;br /&gt;
   rotate &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
   translate y*(-0.25)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cube.ini ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
; POV-Ray animation ini file&lt;br /&gt;
Antialias=On&lt;br /&gt;
Antialias_Threshold=0.1&lt;br /&gt;
Antialias_Depth=2&lt;br /&gt;
&lt;br /&gt;
Input_File_Name=cube.pov&lt;br /&gt;
&lt;br /&gt;
Initial_Frame=1&lt;br /&gt;
Final_Frame=50&lt;br /&gt;
Initial_Clock=0&lt;br /&gt;
Final_Clock=1&lt;br /&gt;
&lt;br /&gt;
Cyclic_Animation=on&lt;br /&gt;
Pause_when_Done=off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cruxic</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=HowTo:Encode_animations_as_Ogg_Theora_Video&amp;diff=479</id>
		<title>HowTo:Encode animations as Ogg Theora Video</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=HowTo:Encode_animations_as_Ogg_Theora_Video&amp;diff=479"/>
		<updated>2008-03-16T14:54:59Z</updated>

		<summary type="html">&lt;p&gt;Cruxic: adding screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As illustrated in the other tutorials, POV-Ray only renders the individual frames of an animation.  It is up to you to compile these frames into an animation file that you can view and share with others.  [http://www.theora.org/, Ogg Theora] is a good choice if you need higher image quality than GIF can provide.  Theora is a non-proprietary video format so you won't need to worry about licensing and royalties if you go commercial with your work.&lt;br /&gt;
&lt;br /&gt;
== Animate Your Frames ==&lt;br /&gt;
The following instructions assume you have a directory containing the image frames created with POV-Ray.  See the bottom of this page if you need help with this step.&lt;br /&gt;
&lt;br /&gt;
== Encoding Under Linux ==&lt;br /&gt;
Instructions for encoding on the Linux platform:&lt;br /&gt;
&lt;br /&gt;
=== Install the tools ===&lt;br /&gt;
You'll need the following command-line tools installed:&lt;br /&gt;
* '''png2yuv''' (Part of the [http://mjpeg.sourceforge.net/ MJPEG Tools project].  Under Ubuntu/Debian simply install the ''mjpegtools'' package.)&lt;br /&gt;
* '''ffmpeg2theora''' ([http://v2v.cc/~j/ffmpeg2theora/ ffmpeg2theora home page].  Under Ubuntu/Debian simply install the ''ffmpeg2theora'' package.)&lt;br /&gt;
&lt;br /&gt;
=== Encode! ===&lt;br /&gt;
'''1)''' Open a command shell to the directory containing your image frames.  (Note: the frames must be in PNG format (POV-Ray default).)&lt;br /&gt;
&lt;br /&gt;
'''2)''' Compile the frames to the intermediate YUV4MPEG stream format:&lt;br /&gt;
&lt;br /&gt;
 png2yuv -I p -f 25 -j cube%02d.png -b 1 &amp;gt; tmp.yuv&lt;br /&gt;
&lt;br /&gt;
Explanation of command:&lt;br /&gt;
* '''-I p''' - no interlacing&lt;br /&gt;
&lt;br /&gt;
* '''-f 25''' - Frame-rate (25 fps).  25 fps is good for motion video.&lt;br /&gt;
&lt;br /&gt;
* '''cube%02d.png''' - Frame file name pattern.  This says our files are named cube00.png through cube99.png.  (png2yuv will stop when it finds no more numbers).  If you had hundreds of frames you would specify: %03d,  thousands: %04d, and so on.&lt;br /&gt;
&lt;br /&gt;
* '''-b 1''' - Start on cube01.png rather than cube00.png (because we don't have cube00.png)&lt;br /&gt;
&lt;br /&gt;
* '''&amp;gt; tmp.yuv''' - Redirect the output to a file.&lt;br /&gt;
&lt;br /&gt;
'''3)''' Compress into Theora format:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg2theora --optimize --videoquality 10 --videobitrate 16778 -o MyAnim.theora tmp.yuv&lt;br /&gt;
&lt;br /&gt;
Explanation of command:&lt;br /&gt;
* '''--optimize --videoquality 10 --videobitrate 16778''' - This is my attempt to give the highest video quality.  Type ffmpeg2theora --help for a description of the parameters (or man ffmpeg2theora).&lt;br /&gt;
* '''-o MyAnim.theora''' - The output file name.  (I'm not sure if .theora is the standard extension for theora videos.  I've seen .ogg used as well but didn't want to confuse it with ogg vorbis audio files.)&lt;br /&gt;
* '''tmp.yuv''' - the input file (the one we created with png2yuv).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Encoding On other Operating Systems ==&lt;br /&gt;
TODO.  This is a wiki so contributors are welcome to fill this in.&lt;br /&gt;
&lt;br /&gt;
== View It! ==&lt;br /&gt;
You should now have ''MyAnim.theora'' waiting to be viewed.  I used the [http://www.gnome.org/projects/totem/ Totem] program to view it under Linux.  Here's a [http://www.theora.org/faq/#40 page listing other players].&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Example) ==&lt;br /&gt;
[[Image:theora_example_frame.png]]&lt;br /&gt;
&lt;br /&gt;
If you need an example pov script to create the animation frames...&lt;br /&gt;
# Save the following two files to a temporary folder&lt;br /&gt;
# Open a command shell to the folder and type:&lt;br /&gt;
# povray cube.ini +W320 +H240&lt;br /&gt;
# After rendering you should 50 png image files (cube01.png - cube50.png)&lt;br /&gt;
# Use above instructions to encode the frames&lt;br /&gt;
&lt;br /&gt;
=== cube.pov ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
global_settings {&lt;br /&gt;
   assumed_gamma 1.5&lt;br /&gt;
   noise_generator 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
box {&lt;br /&gt;
   &amp;lt;-0.5, -0.5, -0.5&amp;gt;, &amp;lt;0.5, 0.5, 0.5&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   pigment {&lt;br /&gt;
      color rgb &amp;lt;0.3, 1, 0.3&amp;gt;&lt;br /&gt;
   }&lt;br /&gt;
   scale 1&lt;br /&gt;
   rotate&amp;lt;0, 360*(clock+0.00), 0&amp;gt;&lt;br /&gt;
   translate y*0.5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
light_source {&lt;br /&gt;
   &amp;lt;4, 5, -5&amp;gt;, rgb &amp;lt;1, 1, 1&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
camera {&lt;br /&gt;
   perspective&lt;br /&gt;
   location &amp;lt;2, 2, 2&amp;gt;&lt;br /&gt;
   sky &amp;lt;0, 1, 0&amp;gt;&lt;br /&gt;
   direction &amp;lt;0, 0, 1&amp;gt;&lt;br /&gt;
   right &amp;lt;1.3333, 0, 0&amp;gt;&lt;br /&gt;
   up &amp;lt;0, 1, 0&amp;gt;&lt;br /&gt;
   look_at &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
plane {&lt;br /&gt;
   &amp;lt;0, 1, 0&amp;gt;, 0&lt;br /&gt;
   &lt;br /&gt;
   pigment {&lt;br /&gt;
      color rgb &amp;lt;0, 0.784314, 1&amp;gt;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   finish {&lt;br /&gt;
      reflection {&lt;br /&gt;
         rgb &amp;lt;1, 1, 1&amp;gt;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   scale 1&lt;br /&gt;
   rotate &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
   translate y*(-0.25)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cube.ini ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
; POV-Ray animation ini file&lt;br /&gt;
Antialias=On&lt;br /&gt;
Antialias_Threshold=0.1&lt;br /&gt;
Antialias_Depth=2&lt;br /&gt;
&lt;br /&gt;
Input_File_Name=cube.pov&lt;br /&gt;
&lt;br /&gt;
Initial_Frame=1&lt;br /&gt;
Final_Frame=50&lt;br /&gt;
Initial_Clock=0&lt;br /&gt;
Final_Clock=1&lt;br /&gt;
&lt;br /&gt;
Cyclic_Animation=on&lt;br /&gt;
Pause_when_Done=off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cruxic</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=File:theora_example_frame.png&amp;diff=478</id>
		<title>File:theora example frame.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=File:theora_example_frame.png&amp;diff=478"/>
		<updated>2008-03-16T14:52:46Z</updated>

		<summary type="html">&lt;p&gt;Cruxic: Frame from Ogg Theora example animation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Frame from Ogg Theora example animation&lt;/div&gt;</summary>
		<author><name>Cruxic</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=HowTo:Create_animations&amp;diff=477</id>
		<title>HowTo:Create animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=HowTo:Create_animations&amp;diff=477"/>
		<updated>2008-03-16T14:40:57Z</updated>

		<summary type="html">&lt;p&gt;Cruxic: added link to the theora tutorial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creating animations in POV is nothing like using graphical tools some of us are already used to. Small animations are easily done, but when animations grow, a little planning and preparation goes a long way.&lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
When animating, we use the ini-file. Here we tell the renderer what frames to render, and what clockvalues the renderer should use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
+W150&lt;br /&gt;
+H150         &lt;br /&gt;
Input_File_Name=robot.pov&lt;br /&gt;
Initial_Frame=1&lt;br /&gt;
Final_Frame=30&lt;br /&gt;
Initial_Clock=0&lt;br /&gt;
Final_Clock=1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the above INI-file will render 30 frames, and the clockvariable will run from 0 to 1. This clock we set in the ini-file wille be avaiable at rendertime as the variable 'clock'. To be of interest every frame should be different according to the clockvalue. &lt;br /&gt;
&lt;br /&gt;
==Animating objects==&lt;br /&gt;
To animate a ball going up and down we could use the clockvariable in an object creation of translation.&lt;br /&gt;
&lt;br /&gt;
 sphere { &amp;lt;0,clock,0&amp;gt;,1 }&lt;br /&gt;
 or&lt;br /&gt;
 sphere { &amp;lt;0,0,0&amp;gt;,1 translate &amp;lt;0,clock,0&amp;gt; }&lt;br /&gt;
&lt;br /&gt;
==Animating object properties==&lt;br /&gt;
More interesting behaviour is possible is you imagine everything can be animated. Allthough impossible in the real world you can show how a piece of glass would look if it's index of refraction would slowly change.&lt;br /&gt;
&lt;br /&gt;
==Animating the camera==&lt;br /&gt;
Animating a camera requires some planning when complex movements are required. Smooth movement is possible if you can specify a 'neat' set of position functions, and a flyby look-and-feel is possible if you also take into account gravity, speed and acceleration, so you can adjust the 'roll' of the camera according to the current down direction.&lt;br /&gt;
This dynamical downdirection is a lineair combination of the gravity vector, and the centrifugal forces caused by direction changes.  &lt;br /&gt;
&lt;br /&gt;
==Creating complex behaviour==&lt;br /&gt;
[[Image:Birds_2_02.gif|right]]&lt;br /&gt;
&lt;br /&gt;
When you want to show complex behaviour in your animation, you will have a lot of programming to do. Sometimes however it is not necessary to define everything in detail. Sometimes simple sets of rules (working on a simple set of variables) wil exhibit complex behavior which will nonetheless be recognizable. &lt;br /&gt;
&lt;br /&gt;
It is possible to define an array of object, say birds or fish, setting up variables for position, orientation and speed, and creating a macro to draw them (with this orientation and speed). Now every time a frame is rendered you call the macro which draws all birds or fish,  and call a macro which calculates the new state for every object (position, speed) and stores it for use in the next frame. This calculation macro is in fact a simple set of -more or less- high-level rules. Changing these rules, you setup behavior, not exact positions for the objects.  You can 'guide' each bird, not exactly, but with simple rules like &amp;quot;stay above the ground&amp;quot; and &amp;quot;if you are going to collide, turn left a bit&amp;quot; you have some control.  These sets of rules will generate almost random behavior, which has recognizable dynamics like flocking for birds, traffic-jamming for cars, or bending in the 'wind' for trees.&lt;br /&gt;
&lt;br /&gt;
===State variables===&lt;br /&gt;
The state variables are the core of this method, and you will need to carefully analyse the behavior of the object you are trying to mimic. You the capture these in a simple data structure. You might create something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
#declare Blocation = array[max_birds];&lt;br /&gt;
#declare Bvelocity = array[max_birds];&lt;br /&gt;
#declare Bphase = array[max_birds];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The amount of detail in the dissemination of the object tends to grow in time, see below for further explanation of the phase-parameter. &lt;br /&gt;
&lt;br /&gt;
To make this work you will need to 'transfer' the state of the objects (birds) from each frame to the next. This can easily be done using macro's to write out, and readback the variables to a file on disk. The following macro's can be easily extended to save and load more complex data-sets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
#macro SaveState()    &lt;br /&gt;
       #fopen wfile &amp;quot;state.txt&amp;quot; write&lt;br /&gt;
       #local i = 0;&lt;br /&gt;
       # while (i&amp;lt;max_birds)&lt;br /&gt;
               #write ( wfile, Blocation[i], &amp;quot;,&amp;quot;, Bvelocity[i], &amp;quot;,&amp;quot; , Bphase[i], &amp;quot;,&amp;quot;)&lt;br /&gt;
               #local i=i+1;                &lt;br /&gt;
       #end     &lt;br /&gt;
       #fclose file     &lt;br /&gt;
#end    &lt;br /&gt;
&lt;br /&gt;
#macro LoadState()    &lt;br /&gt;
       #fopen rfile &amp;quot;state.txt&amp;quot; read&lt;br /&gt;
       #local i = 0;&lt;br /&gt;
       #while (i&amp;lt;max_birds)&lt;br /&gt;
               #read ( rfile, Blocation[i] ,Bvelocity[i], Bphase[i] )&lt;br /&gt;
               #local i=i+1;                &lt;br /&gt;
       #end         &lt;br /&gt;
       #fclose file&lt;br /&gt;
#end    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Drawing the objects===&lt;br /&gt;
You will need a macro or set of macros to draw the objects into the scene. The macro to draw the object will have to take into account all relevant parameters. For instance a bird rolls when taking a turn, according with it's changing down-vector. Also the wings will have a current state (a phase) which determines where the wings are in the up-down direction. &lt;br /&gt;
&lt;br /&gt;
===Rules===&lt;br /&gt;
In the main file you will want to execute some 'business rules' for every bird to define it's solitary behaviour, and maybe you will want to run some other rules for each bird-pair, so social behaviour can be controlled. These rules act on the state variables, but can also gather information elsewhere provided the variables needed are in [[scope]].&lt;br /&gt;
&lt;br /&gt;
You can embed these rules in a macro which you run each frame. In this macro you could create some intermediate variables, deduced from the state variables to make the rule definition somewhat more comfortable. In the example above, we could define a speed, which is easier to compare than a velocity vector.&lt;br /&gt;
&lt;br /&gt;
 #local Speed = vlength(Bvelocity[i]);&lt;br /&gt;
&lt;br /&gt;
Now further on you can create a rule to stop birds from stalling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
// Do not stall&lt;br /&gt;
#if (Speed&amp;lt;1) &lt;br /&gt;
    #declare Bvelocity[i]=Bvelocity[i]*1.2; &lt;br /&gt;
#end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Detailed control===&lt;br /&gt;
As said you cannot control these objects at the position-level using these rules. At rendertime you have access to all the variables so you could do extra checks and 'force then around'. However this will not work at parse-time. Suppose you create a scene with mountains and buildings, and want to add some birds. Now when the birds calculate their 'next move' the information about buildings and mountains is NOT available. Detailed interaction with the scene requires capturing behaviour in rules, and creating an environment where data about say buildings and mountains can be stored. Now the extra rules can act on this data.&lt;br /&gt;
&lt;br /&gt;
===More to try===&lt;br /&gt;
*You could consider animating things like fish, cars, trees, houses and much more.&lt;br /&gt;
*Try animating different species with specific interactions.&lt;br /&gt;
&lt;br /&gt;
==Cyclic animations==&lt;br /&gt;
Suppose you want to make an animation that loops, so that after the last frame has been rendered it should hop back to the first frame and play everything again. To make the jump from the last to the first frame seamless, the animation must end with exactly the same scene as it started with, i.e. parsing the file with clock = 0 and clock = 1 must generate the same image. When animating this however, you will find a slight glitch in the animation: since the first and last frame are identical it will look like like the animation stops for a while. You could prevent this simply by deleting the last frame after you have rendered them, or only render a subset of the frames to leave out the last one, but POV-ray offers a much better solution. Simply add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
Cyclic_Animation=On&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the INI-file, or +KC to the command line. POV-ray will now automatically do the following:&lt;br /&gt;
&lt;br /&gt;
* Increase the number of frames by one (so if you chose to have 50 frames in the animation, POV-ray will make it 51)&lt;br /&gt;
* but not render the last frame (so you'll still only get 50 images rendered, since the 51st one would be identical to the first)&lt;br /&gt;
&lt;br /&gt;
When these images are compiled into a looping animation, you'll get a nice, smooth, and glitch-free animation.  For example, here's [[HowTo:Encode_animations_as_Ogg_Theora_Video|how to create an Ogg Theora video file]].&lt;/div&gt;</summary>
		<author><name>Cruxic</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=HowTo:Encode_animations_as_Ogg_Theora_Video&amp;diff=476</id>
		<title>HowTo:Encode animations as Ogg Theora Video</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=HowTo:Encode_animations_as_Ogg_Theora_Video&amp;diff=476"/>
		<updated>2008-03-16T14:35:55Z</updated>

		<summary type="html">&lt;p&gt;Cruxic: first draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As illustrated in the other tutorials, POV-Ray only renders the individual frames of an animation.  It is up to you to compile these frames into an animation file that you can view and share with others.  [http://www.theora.org/, Ogg Theora] is a good choice if you need higher image quality than GIF can provide.  Theora is a non-proprietary video format so you won't need to worry about licensing and royalties if you go commercial with your work.&lt;br /&gt;
&lt;br /&gt;
== Animate Your Frames ==&lt;br /&gt;
The following instructions assume you have a directory containing the image frames created with POV-Ray.  See the bottom of this page if you need help with this step.&lt;br /&gt;
&lt;br /&gt;
== Encoding Under Linux ==&lt;br /&gt;
Instructions for encoding on the Linux platform:&lt;br /&gt;
&lt;br /&gt;
=== Install the tools ===&lt;br /&gt;
You'll need the following command-line tools installed:&lt;br /&gt;
* '''png2yuv''' (Part of the [http://mjpeg.sourceforge.net/ MJPEG Tools project].  Under Ubuntu/Debian simply install the ''mjpegtools'' package.)&lt;br /&gt;
* '''ffmpeg2theora''' ([http://v2v.cc/~j/ffmpeg2theora/ ffmpeg2theora home page].  Under Ubuntu/Debian simply install the ''ffmpeg2theora'' package.)&lt;br /&gt;
&lt;br /&gt;
=== Encode! ===&lt;br /&gt;
'''1)''' Open a command shell to the directory containing your image frames.  (Note: the frames must be in PNG format (POV-Ray default).)&lt;br /&gt;
&lt;br /&gt;
'''2)''' Compile the frames to the intermediate YUV4MPEG stream format:&lt;br /&gt;
&lt;br /&gt;
 png2yuv -I p -f 25 -j cube%02d.png -b 1 &amp;gt; tmp.yuv&lt;br /&gt;
&lt;br /&gt;
Explanation of command:&lt;br /&gt;
* '''-I p''' - no interlacing&lt;br /&gt;
&lt;br /&gt;
* '''-f 25''' - Frame-rate (25 fps).  25 fps is good for motion video.&lt;br /&gt;
&lt;br /&gt;
* '''cube%02d.png''' - Frame file name pattern.  This says our files are named cube00.png through cube99.png.  (png2yuv will stop when it finds no more numbers).  If you had hundreds of frames you would specify: %03d,  thousands: %04d, and so on.&lt;br /&gt;
&lt;br /&gt;
* '''-b 1''' - Start on cube01.png rather than cube00.png (because we don't have cube00.png)&lt;br /&gt;
&lt;br /&gt;
* '''&amp;gt; tmp.yuv''' - Redirect the output to a file.&lt;br /&gt;
&lt;br /&gt;
'''3)''' Compress into Theora format:&lt;br /&gt;
&lt;br /&gt;
 ffmpeg2theora --optimize --videoquality 10 --videobitrate 16778 -o MyAnim.theora tmp.yuv&lt;br /&gt;
&lt;br /&gt;
Explanation of command:&lt;br /&gt;
* '''--optimize --videoquality 10 --videobitrate 16778''' - This is my attempt to give the highest video quality.  Type ffmpeg2theora --help for a description of the parameters (or man ffmpeg2theora).&lt;br /&gt;
* '''-o MyAnim.theora''' - The output file name.  (I'm not sure if .theora is the standard extension for theora videos.  I've seen .ogg used as well but didn't want to confuse it with ogg vorbis audio files.)&lt;br /&gt;
* '''tmp.yuv''' - the input file (the one we created with png2yuv).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Encoding On other Operating Systems ==&lt;br /&gt;
TODO.  This is a wiki so contributors are welcome to fill this in.&lt;br /&gt;
&lt;br /&gt;
== View It! ==&lt;br /&gt;
You should now have ''MyAnim.theora'' waiting to be viewed.  I used the [http://www.gnome.org/projects/totem/ Totem] program to view it under Linux.  Here's a [http://www.theora.org/faq/#40 page listing other players].&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Example) ==&lt;br /&gt;
If you need an example pov script to create the animation frames...&lt;br /&gt;
# Save the following two files to a temporary folder&lt;br /&gt;
# Open a command shell to the folder and type:&lt;br /&gt;
# povray cube.ini +W320 +H240&lt;br /&gt;
# After rendering you should 50 png image files (cube01.png - cube50.png)&lt;br /&gt;
# Use above instructions to encode the frames&lt;br /&gt;
&lt;br /&gt;
=== cube.pov ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pov&amp;quot;&amp;gt;&lt;br /&gt;
global_settings {&lt;br /&gt;
   assumed_gamma 1.5&lt;br /&gt;
   noise_generator 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
box {&lt;br /&gt;
   &amp;lt;-0.5, -0.5, -0.5&amp;gt;, &amp;lt;0.5, 0.5, 0.5&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   pigment {&lt;br /&gt;
      color rgb &amp;lt;0.3, 1, 0.3&amp;gt;&lt;br /&gt;
   }&lt;br /&gt;
   scale 1&lt;br /&gt;
   rotate&amp;lt;0, 360*(clock+0.00), 0&amp;gt;&lt;br /&gt;
   translate y*0.5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
light_source {&lt;br /&gt;
   &amp;lt;4, 5, -5&amp;gt;, rgb &amp;lt;1, 1, 1&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
camera {&lt;br /&gt;
   perspective&lt;br /&gt;
   location &amp;lt;2, 2, 2&amp;gt;&lt;br /&gt;
   sky &amp;lt;0, 1, 0&amp;gt;&lt;br /&gt;
   direction &amp;lt;0, 0, 1&amp;gt;&lt;br /&gt;
   right &amp;lt;1.3333, 0, 0&amp;gt;&lt;br /&gt;
   up &amp;lt;0, 1, 0&amp;gt;&lt;br /&gt;
   look_at &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
plane {&lt;br /&gt;
   &amp;lt;0, 1, 0&amp;gt;, 0&lt;br /&gt;
   &lt;br /&gt;
   pigment {&lt;br /&gt;
      color rgb &amp;lt;0, 0.784314, 1&amp;gt;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   finish {&lt;br /&gt;
      reflection {&lt;br /&gt;
         rgb &amp;lt;1, 1, 1&amp;gt;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   scale 1&lt;br /&gt;
   rotate &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
   translate y*(-0.25)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cube.ini ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
; POV-Ray animation ini file&lt;br /&gt;
Antialias=On&lt;br /&gt;
Antialias_Threshold=0.1&lt;br /&gt;
Antialias_Depth=2&lt;br /&gt;
&lt;br /&gt;
Input_File_Name=cube.pov&lt;br /&gt;
&lt;br /&gt;
Initial_Frame=1&lt;br /&gt;
Final_Frame=50&lt;br /&gt;
Initial_Clock=0&lt;br /&gt;
Final_Clock=1&lt;br /&gt;
&lt;br /&gt;
Cyclic_Animation=on&lt;br /&gt;
Pause_when_Done=off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cruxic</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=HowTo:Contents&amp;diff=475</id>
		<title>HowTo:Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=HowTo:Contents&amp;diff=475"/>
		<updated>2008-03-16T13:12:50Z</updated>

		<summary type="html">&lt;p&gt;Cruxic: Adding howto link for compiling animations as Theora videos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a list of the currently-available 'How To' articles. If you add a new article, please list it here.&lt;br /&gt;
&lt;br /&gt;
Please also read our '''[[Help:Editing_Guidelines|Editing Guidelines]]''' prior to creating any articles.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
It would be handy if some users co-operated in working out a 'wishlist' of articles and a hierarchy for them, and then created the links to the empty pages from this page.&lt;br /&gt;
&lt;br /&gt;
Discussions should be held on the [[HowTo_Talk:Contents|talk]] page, not here.&lt;br /&gt;
&lt;br /&gt;
==Completed Articles==&lt;br /&gt;
&lt;br /&gt;
*[[HowTo:Use constructive solid geometry]]&lt;br /&gt;
*[[HowTo:Use macros and loops]]&lt;br /&gt;
&lt;br /&gt;
==Work-in-Progress Articles==&lt;br /&gt;
&lt;br /&gt;
====Animating Your Creations====&lt;br /&gt;
*[[HowTo:Create animations]]&lt;br /&gt;
*[[HowTo:Create More Complex Animations]]&lt;br /&gt;
*[[HowTo:Animation Pitfalls]]&lt;br /&gt;
*[[HowTo:Encode animations as Ogg Theora Video]]  (A non-proprietary video file format)&lt;br /&gt;
&lt;br /&gt;
====Objects====&lt;br /&gt;
*[[HowTo:Use constructive solid geometry]]&lt;br /&gt;
*[[HowTo:Use the blob object]]&lt;br /&gt;
*[[HowTo:Use the isosurface object]]&lt;br /&gt;
*[[HowTo:Use the lathe object]]&lt;br /&gt;
*[[HowTo:Use the plane object]]&lt;br /&gt;
*[[HowTo:Use spline and Bezier Curves]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Texturing====&lt;br /&gt;
*[[HowTo:Use UV-mapping]]&lt;br /&gt;
*[[HowTo:Use an Image as a Texture]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Lighting====&lt;br /&gt;
*[[HowTo:Use the area_light]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Special Effects in POV-ray====&lt;br /&gt;
*[[HowTo:Use fog and media]]&lt;br /&gt;
*[[HowTo:Use rainbow]]&lt;br /&gt;
*[[HowTo:Use photons]]&lt;br /&gt;
*[[HowTo:Use radiosity]]&lt;br /&gt;
*[[HowTo:Use sky_sphere and background]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Special Output in POV-ray====&lt;br /&gt;
*[[HowTo:Create Anaglyph Images]]&lt;br /&gt;
*[[HowTo:Create Multi-phase Web Buttons]]&lt;br /&gt;
*[[HowTo:Create Images for use as a heightfield]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Working with POV-ray ====&lt;br /&gt;
*[[HowTo:Plan your scenes]]&lt;br /&gt;
*[[HowTo:Build a Basic Scene]]&lt;br /&gt;
*[[HowTo:Take Full Advantage of the Insert Menu]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Scene Description Language====&lt;br /&gt;
*[[HowTo:Manage Your Variables]]&lt;br /&gt;
*[[HowTo:Use Conditional Structures]]&lt;br /&gt;
*[[HowTo:Use Macros and Loops]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting Your Scene====&lt;br /&gt;
This section is for figuring out why your scene isn't rendering as expected.  For problems related to installation or removal of POV-ray, updates, crashes, or other software-related issues, see [[#General POV-ray Troubleshooting|General POV-ray Troubleshooting]].&lt;br /&gt;
*[[HowTo:Fix Unexpected Image Output|Why is my image completely black?]]&lt;br /&gt;
*[[HowTo:Fix Unexpected Invisiblity#Objects|Why aren't all of my objects showing up?]]&lt;br /&gt;
*[[HowTo:Fix Unexpected Invisiblity#Media|Why doesn't my fog or other media show up?]]&lt;br /&gt;
*[[HowTo:Fix Artifacts#Coincident Surfaces|What are all of these weird speckles on my object?]]&lt;br /&gt;
*[[HowTo:Fix Artifacts#Isosurfaces|What is the best way to fix holes in my isosurface?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====General POV-ray Troubleshooting====&lt;br /&gt;
This section is for software problems with POV-ray.  If you are trying to figure out why your scene isn't rendering as expected, see [[#Troubleshooting Your Scene|Troubleshooting Your Scene]].&lt;br /&gt;
*[[HowTo:Install Multiple Versions of POV-ray]]&lt;/div&gt;</summary>
		<author><name>Cruxic</name></author>
	</entry>
</feed>