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