<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.povray.org/content?action=history&amp;feed=atom&amp;title=Documentation%3ATutorial_Section_4.2</id>
	<title>Documentation:Tutorial Section 4.2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.povray.org/content?action=history&amp;feed=atom&amp;title=Documentation%3ATutorial_Section_4.2"/>
	<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;action=history"/>
	<updated>2026-10-10T01:53:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;diff=1555&amp;oldid=prev</id>
		<title>Jholsenback: external link handling change after recent update</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;diff=1555&amp;oldid=prev"/>
		<updated>2009-06-23T15:57:33Z</updated>

		<summary type="html">&lt;p&gt;external link handling change after recent update&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:57, 23 June 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l171&quot; &gt;Line 171:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 171:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;However, you are not completely out of luck when dealing with compressing&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;However, you are not completely out of luck when dealing with compressing&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mesh data. [http://www.geocities.com/ccolefax/pcm.html&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;This has been done before&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mesh data. [http://www.geocities.com/ccolefax/pcm.html This has been done before].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l183&quot; &gt;Line 183:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 183:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===What is the best animation program available?===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===What is the best animation program available?===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Animation_Utilities/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;links collection on our website&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Animation_Utilities/ links collection on our website].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l190&quot; &gt;Line 190:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 190:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;See the [http://irtc.org/anims/faq.html&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;IRTC Animation FAQ&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;See the [http://irtc.org/anims/faq.html IRTC Animation FAQ].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Where can I find models/textures?===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Where can I find models/textures?===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://povray.org/links/POV-Ray_Include_Macro_and_Object_Files/Object_and_Scene_Files/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;links collection on our website&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://povray.org/links/POV-Ray_Include_Macro_and_Object_Files/Object_and_Scene_Files/ links collection on our website].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===What are the best modellers for POV-Ray?===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===What are the best modellers for POV-Ray?===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Programs/POV-Ray_Modelling_Programs/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;links collection on our website&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Programs/POV-Ray_Modelling_Programs/ links collection on our website].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l209&quot; &gt;Line 209:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 209:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Most of the available modelers are listed on the [http://mac.povray.org/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;Official POV-Ray MacOS Info Page&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Most of the available modelers are listed on the [http://mac.povray.org/ Official POV-Ray MacOS Info Page].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l228&quot; &gt;Line 228:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 228:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;- The POV-Ray users gallery located on&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;- The POV-Ray users gallery located on&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.povray.org/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;our web server&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.povray.org/ our web server].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;- On our private [http://www.povray.org/groups.html&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;news server&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;] (not connected with USENET)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;- On our private [http://www.povray.org/groups.html news server] (not connected with USENET)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;in the povray.binaries.images newsgroup, you will find many images&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;in the povray.binaries.images newsgroup, you will find many images&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;posted from other POV-Ray users. There are also discussion groups, and&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;posted from other POV-Ray users. There are also discussion groups, and&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l237&quot; &gt;Line 237:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 237:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;You should also check the [http://www.irtc.org/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;Internet Raytracing Competition homepage&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;You should also check the [http://www.irtc.org/ Internet Raytracing Competition homepage].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Any good heightfield modellers?===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Any good heightfield modellers?===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Programs/Height_Field_Modelling_Programs_and_Utilities/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;links collection on our website&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Programs/Height_Field_Modelling_Programs_and_Utilities/ links collection on our website].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Any easy way of creating trees?===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Any easy way of creating trees?===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;A program called [http://free.prohosting.com/~jhubert/TreeDesigner/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;Tree designer by Johannes Hubert&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;A program called [http://free.prohosting.com/~jhubert/TreeDesigner/ Tree designer by Johannes Hubert]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;is an excellent modelling program for trees.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;is an excellent modelling program for trees.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;There are also a several good include files for this purpose. Check out our link collection to [http://www.povray.org/links/POV-Ray_Include_Macro_and_Object_Files/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;&lt;/del&gt;Include Macro and Object Files&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;There are also a several good include files for this purpose. Check out our link collection to [http://www.povray.org/links/POV-Ray_Include_Macro_and_Object_Files/Include Macro and Object Files].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jholsenback</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;diff=1424&amp;oldid=prev</id>
		<title>Jholsenback: Protected &quot;Documentation:Tutorial Section 4.2&quot; [edit=sysop:move=sysop]</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;diff=1424&amp;oldid=prev"/>
		<updated>2009-03-10T18:19:14Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/content/Documentation:Tutorial_Section_4.2&quot; title=&quot;Documentation:Tutorial Section 4.2&quot;&gt;Documentation:Tutorial Section 4.2&lt;/a&gt;&amp;quot; [edit=sysop:move=sysop]&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:19, 10 March 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Jholsenback</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;diff=1399&amp;oldid=prev</id>
		<title>Jholsenback: 1 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;diff=1399&amp;oldid=prev"/>
		<updated>2009-03-10T18:02:53Z</updated>

		<summary type="html">&lt;p&gt;1 revision(s)&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:02, 10 March 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Jholsenback</name></author>
	</entry>
	<entry>
		<id>https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;diff=1398&amp;oldid=prev</id>
		<title>WikiSysop: /* How do I increase rendering speed? */</title>
		<link rel="alternate" type="text/html" href="https://wiki.povray.org/content?title=Documentation:Tutorial_Section_4.2&amp;diff=1398&amp;oldid=prev"/>
		<updated>2009-03-06T16:11:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;How do I increase rendering speed?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!--&amp;lt;wikitalk&amp;gt;---&amp;gt;&lt;br /&gt;
&amp;lt;table width=100% border=1 cellspacing=0 cellpadding=5&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td width=100% bgcolor=#FFEEEE&amp;gt;&lt;br /&gt;
This document is protected, so submissions, corrections and discussions should be held on this documents [[Documentation_Talk:Tutorial Section 4.2|talk]] page.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;/wikitalk&amp;gt;---&amp;gt;&lt;br /&gt;
===How can I avoid artifacts and still get good JPEG compression?===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
(Answer by Peter J. Holzer)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
First, you have to know a little bit about how a picture is stored&lt;br /&gt;
in JPEG format.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Unlike most image formats it does not store RGB values, but YUV&lt;br /&gt;
values (1 grayscale value and two &amp;amp;quot;color difference&amp;amp;quot; values) just&lt;br /&gt;
like they are used in a color TV signal. Since the human eye uses&lt;br /&gt;
mostly the gray values to detect edges, one can usually get away&lt;br /&gt;
with storing the color information at a lower resolution - an&lt;br /&gt;
800x600 JPEG typically has only grayscale information at 800x600,&lt;br /&gt;
but color information at 400x300. This is called supersampling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For each color channel separately, the picture is then divided into&lt;br /&gt;
little squares and the cosine transform of each square is computed.&lt;br /&gt;
A neat feature of this transformation is that if you throw away only&lt;br /&gt;
a few of the values, the quality will degrade very little, but the&lt;br /&gt;
image will compress a lot better. The percentage of values stored is&lt;br /&gt;
called the quality.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Finally, the data is compressed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Most programs only let you change the quality setting. This is fine&lt;br /&gt;
for photos and photorealistic renderings of &amp;amp;quot;natural&amp;amp;quot; scenes.&lt;br /&gt;
Generally, quality values around 75% give be best compromise between&lt;br /&gt;
quality and image size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
However, for images which contain very saturated colors, the lower&lt;br /&gt;
resolution of the color channels causes visible artifacts which are&lt;br /&gt;
very similar to those caused by low quality settings. They can be&lt;br /&gt;
minimized by setting an extremely high quality (close to 100%), but&lt;br /&gt;
this will dramatically increase the file size, and often the&lt;br /&gt;
artifacts are still visible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A better method is to turn off supersampling. The higher resolution&lt;br /&gt;
will cause only a modest increase in file size, which is more than&lt;br /&gt;
offset by the ability to use a lower quality setting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The cjpeg command line utility (which should be available for all&lt;br /&gt;
systems which have a command line, e.g., Linux, MS-DOS, Unix, ...)&lt;br /&gt;
has an &amp;amp;quot;-sample&amp;amp;quot; to set the sampling factors for all passes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        cjpeg -sample 1x1,1x1,1x1 -quality 75 -optimize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
should be good default values which have to be changed only rarely.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Why are there no converters from POV to other formats?===&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;em&amp;gt;&amp;amp;quot;Why are there so many converters from other 3D file formats to POV, but&lt;br /&gt;
practically no converters from POV to other formats?&amp;amp;quot;&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;It is a mistake to think that a POV-Ray file is just the&lt;br /&gt;
same kind of data file as in most other renderers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The file format of most renderers is just a data file&lt;br /&gt;
containing numerical values (vertex coordinates, triangle indices,&lt;br /&gt;
textures, uv-coordinates, NURBS data...) describing the scene.&lt;br /&gt;
They usually are very little more than just numerical data containers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;However, POV-Ray files are much more than just data files.&lt;br /&gt;
POV-Ray files are actually source code of the POV-Ray scripting language.&lt;br /&gt;
The POV-Ray scripting language is by many means a full programming language&lt;br /&gt;
(it is Turing-strong). It contains many features typical to programming&lt;br /&gt;
languages and non-typical to data files (such as variables, loops, mathematical&lt;br /&gt;
functions, macros, etc). It has many features to describe things in a much&lt;br /&gt;
more abstract way than just plain numbers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is why converting a POV-file to a data file readable&lt;br /&gt;
by other renderers is so difficult. The converter program would actually&lt;br /&gt;
have to &amp;amp;quot;execute&amp;amp;quot;, that is, interpret the scripting language (in the exact&lt;br /&gt;
same way as a BASIC or Perl source code is interpreted). Making a scripting&lt;br /&gt;
language interpreter is a much more laborious job than just converting&lt;br /&gt;
numerical data from one format to another.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There is also another problem: POV-Ray describes most of its&lt;br /&gt;
objects as mathematical entities while most of other renderers just handle&lt;br /&gt;
triangles (or NURBS or similar easily tesselable primitives). A converter&lt;br /&gt;
would have to make some tesselation in order to convert most POV-Ray&lt;br /&gt;
primitives to other formats. This can be a quite laborious job for a&lt;br /&gt;
converter to make (it would have to practically implement an almost&lt;br /&gt;
fully-qualified POV-Ray renderer).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is why making a full-featured converter from any&lt;br /&gt;
POV-file to any other format is an almost impossible task.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Why are triangle meshes in ASCII format?===&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;em&amp;gt;&amp;amp;quot;Why are triangle meshes in ASCII format? They are huge! A binary format&lt;br /&gt;
would be a lot smaller. If POV-Ray can read binary images, why&lt;br /&gt;
can it not read binary mesh data?&amp;amp;quot;&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;It is not as simple as you may think.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You cannot compare binary mesh data with image files. Yes, images are&lt;br /&gt;
binary data,&lt;br /&gt;
but there is one big difference: Image files use &amp;lt;strong&amp;gt;integer&amp;lt;/strong&amp;gt; numbers&lt;br /&gt;
(usually&lt;br /&gt;
bytes, in some cases 16-bit integers), which can be easily read in any&lt;br /&gt;
system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;However, meshes use &amp;lt;strong&amp;gt;floating point&amp;lt;/strong&amp;gt; numbers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;It might come as a bit of surprise that it is far from&lt;br /&gt;
easy to represent them in binary format so that they can be read in every&lt;br /&gt;
possible system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;It is very important to keep in mind that POV-Ray is intended to be a very&lt;br /&gt;
portable program, which should be compilable in virtually any system with&lt;br /&gt;
a decent C compiler. This is not just mumbo-jumbo; POV-Ray IS used in a&lt;br /&gt;
wide variety of operating systems and computer architectures, including&lt;br /&gt;
Windows, MacOS, Linux, (Sparc) Solaris, Digital Unix and so on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The internal representation of floating point numbers may differ in number&lt;br /&gt;
of bits and bits reserved for each part of the number inside the data type&lt;br /&gt;
in different systems. There is also the infamous big-endian/low-endian problem&lt;br /&gt;
(that is, although the floating point numbers were identical in two different&lt;br /&gt;
systems, they may be written in different byte-order when writing to a file).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you try to make carelessly a patch which reads and writes floating point&lt;br /&gt;
numbers in binary format, you will probably quickly find that your patch&lt;br /&gt;
only works in a certain architecture only (eg. PC) and not others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to store floating point numbers so that they can be read in any&lt;br /&gt;
system, you have to store them in an universal format. ASCII is as good as&lt;br /&gt;
any other.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;However, you are not completely out of luck when dealing with compressing&lt;br /&gt;
mesh data. [http://www.geocities.com/ccolefax/pcm.html|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;This has been done before&amp;lt;/span&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Since version 3.5, POV-Ray supports a new type of mesh&lt;br /&gt;
(called mesh2) which stores the mesh data in a more compact format (similar&lt;br /&gt;
to the one used in the PCM format described in the abovementioned link, but&lt;br /&gt;
with a bit more 'syntax' around it).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Utilities, models, etc.===&lt;br /&gt;
&lt;br /&gt;
===What is the best animation program available?===&lt;br /&gt;
&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Animation_Utilities/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;links collection on our website&amp;lt;/span&amp;gt;].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating/viewing MPEG-files.===&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;em&amp;gt;&amp;amp;quot;How can I create/view mpeg-files in Windows/Linux/...?&amp;amp;quot;&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;See the [http://irtc.org/anims/faq.html|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;IRTC Animation FAQ&amp;lt;/span&amp;gt;].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Where can I find models/textures?===&lt;br /&gt;
&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray &lt;br /&gt;
[http://povray.org/links/POV-Ray_Include_Macro_and_Object_Files/Object_and_Scene_Files/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;links collection on our website&amp;lt;/span&amp;gt;].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What are the best modellers for POV-Ray?===&lt;br /&gt;
&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Programs/POV-Ray_Modelling_Programs/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;links collection on our website&amp;lt;/span&amp;gt;].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Any POV-Ray modellers for Mac?===&lt;br /&gt;
&amp;lt;p&amp;gt;(Answer by Henri Sivonen)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Yes there are. However, a text editor is still needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Most of the available modelers are listed on the [http://mac.povray.org/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;Official POV-Ray MacOS Info Page&amp;lt;/span&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;DOS, Windows and Linux i386 modelers can be used with an Intel PC emulator.&lt;br /&gt;
With Mac OS X most Linux-compatible applications with freely available source code can be compiled&lt;br /&gt;
and then run natively.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Is there any user gallery of POV-Ray images?===&lt;br /&gt;
&amp;lt;p&amp;gt;There are literaly hundreds of POV-Ray users galleries. Almost anybody&lt;br /&gt;
that uses POV-Ray and has a web page has some sort of picture gallery set&lt;br /&gt;
up. Look for web page address's at the bottoms of the messages posted to&lt;br /&gt;
the newsgroup comp.graphics.rendering.raytracing and the povray newsgroups.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There are 2 places officially supported by the POV-Team. They are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;- The POV-Ray users gallery located on&lt;br /&gt;
[http://www.povray.org/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;our web server&amp;lt;/span&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;- On our private [http://www.povray.org/groups.html|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;news server&amp;lt;/span&amp;gt;] (not connected with USENET)&lt;br /&gt;
in the povray.binaries.images newsgroup, you will find many images&lt;br /&gt;
posted from other POV-Ray users. There are also discussion groups, and&lt;br /&gt;
plenty of sample code and scenes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You should also check the [http://www.irtc.org/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;Internet Raytracing Competition homepage&amp;lt;/span&amp;gt;].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Any good heightfield modellers?===&lt;br /&gt;
&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Check the POV-Ray [http://povray.org/links/3D_Programs/Height_Field_Modelling_Programs_and_Utilities/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;links collection on our website&amp;lt;/span&amp;gt;].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Any easy way of creating trees?===&lt;br /&gt;
&amp;lt;p&amp;gt;A program called [http://free.prohosting.com/~jhubert/TreeDesigner/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;Tree designer by Johannes Hubert&amp;lt;/span&amp;gt;]&lt;br /&gt;
is an excellent modelling program for trees.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There are also a several good include files for this purpose. Check out our link collection to [http://www.povray.org/links/POV-Ray_Include_Macro_and_Object_Files/|_new &amp;lt;span title=&amp;quot;Opens A New Window!&amp;quot;&amp;gt;Include Macro and Object Files&amp;lt;/span&amp;gt;]).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rendering speed===&lt;br /&gt;
&lt;br /&gt;
===Will POV-Ray render faster with a 3D card?===&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;em&amp;gt;&amp;amp;quot;Will POV-Ray render faster if I buy the latest and fastest 3D&lt;br /&gt;
videocard?&amp;amp;quot;&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;No.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;3D-cards are not designed for raytracing. They read polygon meshes and then&lt;br /&gt;
scanline-render them. Scanline rendering has very little, if anything, to do&lt;br /&gt;
with raytracing. 3D-cards cannot calculate typical features of raytracing&lt;br /&gt;
as reflections etc. The algorithms used in 3D-cards have nothing to do&lt;br /&gt;
with raytracing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This means that you cannot use a 3D-card to speed up raytracing (even if&lt;br /&gt;
you wanted to do so). Raytracing makes lots of float number calculations, and&lt;br /&gt;
this is very FPU-consuming. You will get much more speed with a very fast FPU&lt;br /&gt;
than a 3D-card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;What raytracing does is actually this: Calculate 1 pixel color and&lt;br /&gt;
(optionally) put it on the screen. You will get little benefit from a&lt;br /&gt;
fast videocard since only individual pixels are drawn on screen.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How do I increase rendering speed?===&lt;br /&gt;
&amp;lt;p&amp;gt;This question can be divided into 2 questions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;1) What kind of hardware should I use to increase rendering speed?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;(Answer by Ken Tyler)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The truth is the computations needed for rendering images are both&lt;br /&gt;
complex and time consuming. This is one of the few program types&lt;br /&gt;
that will actualy put your processors FPU to maximum use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The things that will most improve speed, roughly in order of&lt;br /&gt;
appearance, are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; CPU speed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; FPU speed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Buss speed and level one and two memory cache - More is better.&lt;br /&gt;
The faster the buss speed the faster the processor can swap out&lt;br /&gt;
computations into its level 2 cache and then read them back in.&lt;br /&gt;
Buss speed therefore can have a large impact on both FPU and&lt;br /&gt;
CPU calculation times. The more cache memory you have available&lt;br /&gt;
the faster the operation becomes because the CPU does not have&lt;br /&gt;
to rely on the much slower system RAM to store information in.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Memory amount, type, and speed. Faster and more is undoubtably&lt;br /&gt;
better. Swapping out to the hard drive for increasing memory&lt;br /&gt;
should be considered the last possible option for increasing&lt;br /&gt;
system memory. The speed of the read/write to disk operation&lt;br /&gt;
is like walking compared to driving a car. Here again is were&lt;br /&gt;
buss speed is a major player in the fast rendering game.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Your OS and number of applications open. Closing open applications,&lt;br /&gt;
including background items like system monitor, task scheduler,&lt;br /&gt;
internet connections, windows volume control, and all other&lt;br /&gt;
applications people have hiding in the background, can greatly&lt;br /&gt;
increase rendering time by stealing cpu cycles. Open task manager&lt;br /&gt;
and see what you have open and then close everything but the&lt;br /&gt;
absolute necessities. Other multi-tasking OS's have other methods&lt;br /&gt;
of determining open application and should be used accordingly.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; And lastly your graphics card. This may seem unlikely to you&lt;br /&gt;
but it is true. If you have a simple 16 bit graphics card your&lt;br /&gt;
render times, compared to other systems with the same processor&lt;br /&gt;
and memory but better CG cards, will be equal. No more no less.&lt;br /&gt;
If you play a lot of games or watch a lot of mpeg movies on your&lt;br /&gt;
system then by all means own a good CG card. If it is rendering&lt;br /&gt;
and raytracing you want to do then invest in the best system&lt;br /&gt;
speed and architecture your money can buy. The graphics cards&lt;br /&gt;
with hardware acceleration are designed to support fast shading&lt;br /&gt;
of simple polygons, prevalent in the gaming industry, and offer&lt;br /&gt;
no support for the intense mathematical number crunching that&lt;br /&gt;
goes on inside a rendering/raytracing program like Pov-Ray,&lt;br /&gt;
Studio Max, and Lightwave. If your modeling program uses OpenGl&lt;br /&gt;
shading methods then a CG card with support for OpenGL will help&lt;br /&gt;
increase the speed of updating the shading window but when it&lt;br /&gt;
comes time to render or raytrace the image its support&lt;br /&gt;
dissapears.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2) How should I make the POV-Ray scenes so that they will render as fast&lt;br /&gt;
as possible?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;These are some things which may speed up rendering without having to&lt;br /&gt;
compromise the quality of the scene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bounding boxes: Sometimes POV-Ray's automatic bounding is not perfect and&lt;br /&gt;
considerable speed may be achieved by bounding objects by hand. These kind&lt;br /&gt;
of objects are, for example, CSG differences and intersections, blobs&lt;br /&gt;
and poly objects. See also:&lt;br /&gt;
&amp;lt;!--&amp;lt;linkto &amp;quot;CSG Speed&amp;quot;&amp;gt;CSG speed&amp;lt;/linkto&amp;gt;---&amp;gt;[[Documentation:Tutorial Section 4.2#CSG speed|CSG speed]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Number of light sources: Each light source slows down the rendering. If&lt;br /&gt;
your scene has many light sources, perhaps you should see if you can&lt;br /&gt;
remove some of them without loosing much quality. Also replace point&lt;br /&gt;
light sources with spotlights whenever possible. If a light source only&lt;br /&gt;
lights a little part of the scene, a spotlight is better than a point&lt;br /&gt;
light, since the point light is tested for each pixel while the spotlight&lt;br /&gt;
is only tested when the pixel falls into the cone of the light.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Area lights are very slow to calculate. If you have big media effects,&lt;br /&gt;
they are &amp;lt;em&amp;gt;extremely&amp;lt;/em&amp;gt; slow to calculate. Use as few area lights as&lt;br /&gt;
possible. Always use adaptive area lights unless you need very high&lt;br /&gt;
accuracy. Use spot area lights whenever possible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When you have many objects with the same texture, union them and apply&lt;br /&gt;
the texture only once. This will decrease parse time and memory use.&lt;br /&gt;
(Of course supposing that it does not matter if the texture does not move&lt;br /&gt;
with the object anymore...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Things to do when doing fast test renderings:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the quality command line parameter (ie. &amp;lt;code&amp;gt;+Q&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Comment out (or enclose with &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt;-statements) the majority&lt;br /&gt;
of the light&lt;br /&gt;
sources and leave only the necessary ones to see the scene.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Replace (with &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt;-statements) slow objects (such as&lt;br /&gt;
superellipsoids) with faster ones (such as boxes).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Replace complex textures with simpler ones (like uniform colors). You&lt;br /&gt;
can also use the &amp;lt;code&amp;gt;quick_color&amp;lt;/code&amp;gt; statement to do this (it&lt;br /&gt;
will work when&lt;br /&gt;
you render with quality 5 or lower, ie. command line parameter&lt;br /&gt;
&amp;lt;code&amp;gt;+Q5&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Reflection and refraction: When an object reflects and refracts light&lt;br /&gt;
(such as a glass object) it usually slows down the rendering&lt;br /&gt;
considerably. For test renderings turning off one of them (reflection&lt;br /&gt;
or refraction) or both should greatly increase rendering speed. For&lt;br /&gt;
example, while testing glass objects it is usually enough to test the&lt;br /&gt;
refraction only and add the reflection only to the final rendering.&lt;br /&gt;
(The problem with both reflecting and refracting objects is that the&lt;br /&gt;
rays will bounce inside the object until max_trace_level is reached,&lt;br /&gt;
and this is very slow.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you have reflection/refraction and a very high&lt;br /&gt;
&amp;lt;code&amp;gt;max_trace_level&amp;lt;/code&amp;gt;,&lt;br /&gt;
try setting the adc_bailout value to something bigger than the&lt;br /&gt;
default 1/256.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSG speed===&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;em&amp;gt;&amp;amp;quot;How do the different kinds of CSG objects compare in speed? How can I&lt;br /&gt;
speed them up?&amp;amp;quot;&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There is a lot of misinformation about CSG speed out there. A&lt;br /&gt;
very common allegation is that &amp;amp;quot;merge is always slower than union&amp;amp;quot;. This statement&lt;br /&gt;
is not true. Merge is sometimes slower than union, but in some cases it is&lt;br /&gt;
even faster. For example, consider the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
global_settings { max_trace_level 40 }&lt;br /&gt;
camera { location -z*8 look_at 0 angle 35 }&lt;br /&gt;
light_source { &amp;amp;lt;100,100,-100&amp;amp;gt; 1 }&lt;br /&gt;
merge&lt;br /&gt;
{ #declare Ind=0;&lt;br /&gt;
  #while(Ind&amp;amp;lt;20)&lt;br /&gt;
    sphere { z*Ind,2 pigment { rgbt .9 } }&lt;br /&gt;
    #declare Ind=Ind+1;&lt;br /&gt;
  #end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There are 20 semitransparent merged spheres there. A test render took 64&lt;br /&gt;
seconds. Substituting 'merge' with 'union' took 352 seconds to render&lt;br /&gt;
(5.5 times longer). The difference in speed is very notable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;So why is 'merge' so much faster than 'union' in this case? Well, the&lt;br /&gt;
answer is probably that the number of visible surfaces play a very important&lt;br /&gt;
role in the rendering speed. When the spheres are unioned there are 18&lt;br /&gt;
inner surfaces, while when merged, those inner surfaces are gone. POV-Ray has&lt;br /&gt;
to calculate lighting and shading for each one of those surfaces and that&lt;br /&gt;
makes it so slow. When the spheres are merged, there is no need to perform&lt;br /&gt;
lighting and shading calculations for those 18 surfaces.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;So is 'merge' always faster than 'union'? No. If you have completely&lt;br /&gt;
non-transparent objects, then 'merge' is slightly slower than 'union', and&lt;br /&gt;
in that case you should always use 'union' instead. It makes no sense&lt;br /&gt;
using 'merge' with non-transparent objects.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Another common allegation is &amp;amp;quot;difference is very slow; much slower&lt;br /&gt;
than union&amp;amp;quot;. This can also be proven as a false statement. Consider&lt;br /&gt;
the following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera { location -z*12 look_at 0 angle 35 }&lt;br /&gt;
light_source { &amp;amp;lt;100,100,-100&amp;amp;gt; 1 }&lt;br /&gt;
difference&lt;br /&gt;
{ sphere { 0,2 }&lt;br /&gt;
  sphere { &amp;amp;lt;-1,0,-1&amp;amp;gt;,2 }&lt;br /&gt;
  sphere { &amp;amp;lt;1,0,-1&amp;amp;gt;,2 }&lt;br /&gt;
  pigment { rgb &amp;amp;lt;1,0,0&amp;amp;gt; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This scene took 42 seconds to render, while substituting the 'difference' with a 'union' took 59 seconds (1.4 times longer).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The crucial thing here is the size of the surfaces on screen. The larger&lt;br /&gt;
the size, the slower to render (because POV-Ray has to do more lighting and&lt;br /&gt;
shading calculations).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;But the second statement is much closer to the truth than the first one:&lt;br /&gt;
differences are usually slow to render, specially when the member objects&lt;br /&gt;
of the difference are very much bigger than the resulting CSG object.&lt;br /&gt;
This is because POV-Ray's automatic bounding is not perfect. A few words&lt;br /&gt;
about bounding:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Suppose you have hundreds of objects (like spheres or whatever) forming&lt;br /&gt;
a bigger CSG object, but this object is rather small on screen (like a&lt;br /&gt;
little house for example). It would be really slow to test ray-object&lt;br /&gt;
intersection for each one of those objects for each pixel of the screen.&lt;br /&gt;
This is speeded up by bounding the CSG object with a bounding shape (such&lt;br /&gt;
as a box). Ray-object intersections are first tested for this bounding box,&lt;br /&gt;
and it is tested for the objects inside the box only if it hits the box. This&lt;br /&gt;
speeds rendering considerably since the tests are performed only in the&lt;br /&gt;
area of the screen where the CSG object is located and nowhere else.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Since it is rather easy to automatically calculate a proper bounding&lt;br /&gt;
box for a given object, POV-Ray does this and thus you do not have to&lt;br /&gt;
do it by yourself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;But this automatic bounding is not perfect. There are situations where&lt;br /&gt;
a perfect automatic bounding is very hard to calculate. One situation is&lt;br /&gt;
the difference and the intersection CSG operations. POV-Ray does what it&lt;br /&gt;
can, but sometimes it makes a pretty poor job. This can be specially seen&lt;br /&gt;
when the resulting CSG object is very small compared to the CSG member&lt;br /&gt;
objects. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
intersection&lt;br /&gt;
{ sphere { &amp;amp;lt;-1000,0,0&amp;amp;gt;,1001 }&lt;br /&gt;
  sphere { &amp;amp;lt;1000,0,0&amp;amp;gt;,1001 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;(This is the same as making a difference with the second sphere inversed)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In this example the member objects extend from &amp;amp;lt;-2001,-1001,-1001&amp;amp;gt;&lt;br /&gt;
to &amp;amp;lt;2001,1001,1001&amp;amp;gt; although the resulting CSG object is a pretty&lt;br /&gt;
small lens-shaped object which is only 2 units wide in the x direction and&lt;br /&gt;
perhaps 10 or 20 or something wide in the y and z directions. As you can see,&lt;br /&gt;
it is very difficult to calculate the actual dimensions of the object (but&lt;br /&gt;
not impossible).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In this type of cases POV-Ray makes a huge bounding box which is useless.&lt;br /&gt;
You should bound this kind of objects by hand (specially when the it has&lt;br /&gt;
lots of member objects). This can be done with the bounded_by keyword.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Here is an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
camera { location -z*80 look_at 0 angle 35 }&lt;br /&gt;
light_source { &amp;amp;lt;100,200,-150&amp;amp;gt; 1 }&lt;br /&gt;
#declare test =&lt;br /&gt;
difference&lt;br /&gt;
{ union&lt;br /&gt;
  { cylinder {&amp;amp;lt;-2, -20, 0&amp;amp;gt;, &amp;amp;lt;-2, 20, 0&amp;amp;gt;, 1}&lt;br /&gt;
    cylinder {&amp;amp;lt;2, -20, 0&amp;amp;gt;, &amp;amp;lt;2, 20, 0&amp;amp;gt;, 1}&lt;br /&gt;
  }&lt;br /&gt;
  box {&amp;amp;lt;-10, 1, -10&amp;amp;gt;, &amp;amp;lt;10, 30, 10&amp;amp;gt;}&lt;br /&gt;
  box {&amp;amp;lt;-10, -1, -10&amp;amp;gt;, &amp;amp;lt;10, -30, 10&amp;amp;gt;}&lt;br /&gt;
  pigment {rgb &amp;amp;lt;1, .5, .5&amp;amp;gt;}&lt;br /&gt;
  bounded_by { box {&amp;amp;lt;-3.1, -1.1, -1.1&amp;amp;gt;, &amp;amp;lt;3.1, 1.1, 1.1&amp;amp;gt;} }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
#declare copy = 0;&lt;br /&gt;
#while (copy &amp;amp;lt; 40)&lt;br /&gt;
  object {test translate -20*x translate copy*x}&lt;br /&gt;
  #declare copy = copy + 3;&lt;br /&gt;
#end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This took 51 seconds to render. Commenting out the 'bounded_by' line increased the rendering time to 231 seconds (4.5 times slower).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;wikinav&amp;gt;---&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table width=100% border=0 cellspacing=0 cellpadding=5&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td width=50% bgcolor=#EEEEEF&amp;gt;&lt;br /&gt;
[[Documentation:Tutorial Section 4.1#How do I import all of my textures I created in 3DS Max into POV-Ray?|How do I import all of my textures I created in 3DS Max into POV-Ray?]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=50% bgcolor=#EEEEEF align=right&amp;gt;&lt;br /&gt;
[[Documentation:Tutorial Section 4.3#Does POV-Ray support 3DNow?|Does POV-Ray support 3DNow?]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;/wikinav&amp;gt;---&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;wikitalk&amp;gt;---&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table width=100% border=1 cellspacing=0 cellpadding=5&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td width=100% bgcolor=#FFEEEE&amp;gt;&lt;br /&gt;
This document is protected, so submissions, corrections and discussions should be held on this documents [[Documentation_Talk:Tutorial Section 4.2|talk]] page.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;/wikitalk&amp;gt;---&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
</feed>