Difference between revisions of "Documentation Talk:Tutorial Section 3.7"
Jholsenback (talk | contribs) m (saving wip ... more later) |
Jholsenback (talk | contribs) m (continued wip ... more later) |
||
Line 4: | Line 4: | ||
<p>This section will introduce you to the technique of combining conventional and radiosity lighting. In this part of the tutorial, we'll be using basically the same sample scene that's located at <code>~/scenes/radiosity/radiosity2.pov</code>, however by changing various radiosity parameters, we'll be able to explore the effects that those changes can have on the scenes appearance and in some cases the render time. Later on, in this tutorial, you can find examples of [[Documentation:Tutorial Section 3.7#Radiosity without conventional lighting|pure radiosity]] illumination.</p> | <p>This section will introduce you to the technique of combining conventional and radiosity lighting. In this part of the tutorial, we'll be using basically the same sample scene that's located at <code>~/scenes/radiosity/radiosity2.pov</code>, however by changing various radiosity parameters, we'll be able to explore the effects that those changes can have on the scenes appearance and in some cases the render time. Later on, in this tutorial, you can find examples of [[Documentation:Tutorial Section 3.7#Radiosity without conventional lighting|pure radiosity]] illumination.</p> | ||
− | <p class="Note"><strong>Note:</strong> Unless otherwise stated | + | <p class="Note"><strong>Note:</strong> Unless otherwise stated all the images in this section were rendered with the following radiosity settings:</p> |
<pre> | <pre> | ||
Line 49: | Line 49: | ||
</pre> | </pre> | ||
− | <p>OK, let's get started! In this set of images | + | <p>OK, let's get started! In this set of images we first have the scene as it should appear without radiosity, in other words the <code>radiosity</code> block has been removed, next with the settings noted above, and finally an image showing the difference between the two. Looking at the difference image, you can see that radiosity greatly affects the shadowed areas when applied in combination with conventional lighting.</p> |
<p class="Note"><strong>Note:</strong> The use of <code>emission 1</code> in the finish block of the blue sky is what gives the bluish touch of the whole scene in the radiosity version, as it functions as kind of a diffuse light source.</p> | <p class="Note"><strong>Note:</strong> The use of <code>emission 1</code> in the finish block of the blue sky is what gives the bluish touch of the whole scene in the radiosity version, as it functions as kind of a diffuse light source.</p> | ||
Line 78: | Line 78: | ||
</table> | </table> | ||
− | <p>Radiosity is a highly <em>tunable</em> | + | <p>Radiosity is a highly <em>tunable</em> process, and it comes equipped with a variety of tunable parameters that make it easy to strike a balance between quality and rendering speed. However, as with most things, higher quality means more render time. Patience is a virtue.</p> |
<p>For instance, let's examine our test object with default settings, with our reference settings, and finally with some maddeningly high-quality settings. For comparison, below each image you can see the difference to the high-quality version.</p> | <p>For instance, let's examine our test object with default settings, with our reference settings, and finally with some maddeningly high-quality settings. For comparison, below each image you can see the difference to the high-quality version.</p> | ||
Line 153: | Line 153: | ||
</table> | </table> | ||
− | <p>The <code>recursion_limit</code> setting primarily affects the brightness of shadows, nooks and corners. The images | + | <p>The <code>recursion_limit</code> setting primarily affects the brightness of shadows, nooks and corners. The following group of images show the results of setting this parameter to 1, 2 and 5 respectively ...</p> |
<table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | <table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | ||
Line 179: | Line 179: | ||
</tr> | </tr> | ||
</table> | </table> | ||
− | + | <p>... while this next grouping shows the difference when compared to our reference setting of <code>recursion_limit 3</code>. As you can see, values higher than 3 do not lead to any better results in such a quite simple scene. In most cases values of 1 or 2 are sufficient, especially for outdoor scenes.</p> | |
<table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | <table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | ||
<tr> | <tr> | ||
Line 205: | Line 205: | ||
</table> | </table> | ||
− | + | <p>The <code>error_bound</code> setting mainly affects the structures of the shadows. Values larger than the default of 1.8 do not have much effect, they make the shadows even flatter. Extremely low values can lead to very good results, but the rendering time can become very long, and you may need to modify other parameters to avoid a grainy appearance.</p> | |
− | |||
− | <p>The <code>error_bound</code> | ||
<table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | <table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | ||
Line 259: | Line 257: | ||
</table> | </table> | ||
− | <p>Somewhat related to | + | <p>Somewhat related to error_bound is <code>low_error_factor</code>. It reduces error_bound setting during the pretrace phase, changing this can be useful to eliminate artifacts. The difference images used the <code>low_error_factor 0.5</code> case for comparison.</p> |
<table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | <table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | ||
Line 306: | Line 304: | ||
</table> | </table> | ||
− | <p> | + | <p>This next sequence of images illustrate the effect of <code>count</code>. It is a general quality and accuracy parameter leading to higher quality and slower rendering at higher values. Keep in mind that higher <code>count</code> isn't necessarily a cure-for-all when it comes to quality. The difference images were compared to a <code>count 150</code> case.</p> |
− | <p> | + | <p class="Note"><strong>Note:</strong> Until otherwise noted the following settings are being used to emphasize the effects of the next parameters we'll be examining.</p> |
+ | |||
+ | <ul> | ||
+ | <li><code>recursion_limit 1</code></li> | ||
+ | <li><code>error_bound 0.2</code></li> | ||
+ | <li><code>low_error_factor 1.0</code></li> | ||
+ | </ul> | ||
<table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | <table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | ||
Line 357: | Line 361: | ||
</table> | </table> | ||
− | <p>Another parameter that affects quality is <code>nearest_count</code>. You can use values from 1 to 20 | + | <p>Another parameter that affects quality is <code>nearest_count</code>. You can use values ranging from 1 to 20 the default is 5. Just like <code>count</code>, higher values can lead to less artifacts and smoother appearance but slower rendering. The <code>nearest_count</code> setting also accepts a second parameter, which activates <em>adaptive pretrace</em>, providing a good means of speeding up pretrace without significant loss of quality (not shown here) the value must be smaller than the first parameter (e.g. <code>nearest_count 20,10</code>). When set, POV-Ray will stop pretracing individual areas of the image where the average sample density already satisfies this second value, thereby avoiding tracing low-detail areas over and over again for little gain, while still being able to drill down deep into high-detail areas. A setting of <code>nearest_count 10</code> was used for the comparison.</p> |
<table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | <table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | ||
Line 405: | Line 409: | ||
</tr> | </tr> | ||
</table> | </table> | ||
− | |||
− | |||
− | |||
− | |||
<p><code>minimum_reuse</code> influences at which minimum distance previous radiosity samples are always reused during calculation, affecting quality and smoothness in nooks and corners. Higher values generally give a smoother appearance, at the cost of corner detail, while lower values may cause corners to look splotchy unless the other parameters (most notably <code>count</code> and <code>nearest_count</code>) are set for higher quality as well.</p> | <p><code>minimum_reuse</code> influences at which minimum distance previous radiosity samples are always reused during calculation, affecting quality and smoothness in nooks and corners. Higher values generally give a smoother appearance, at the cost of corner detail, while lower values may cause corners to look splotchy unless the other parameters (most notably <code>count</code> and <code>nearest_count</code>) are set for higher quality as well.</p> | ||
− | <p>As <code>minimum_reuse</code> must be lower than <code>maximum_reuse</code>, to avoid a parse error with the highest setting we're using <code>minimum_reuse 4.0</code> for these three images.</p> | + | <p>As <code>minimum_reuse</code> must be lower than <code>maximum_reuse</code>, to avoid a parse error with the highest setting we're using <code>minimum_reuse 4.0</code> for these next three images.</p> |
<table class="matte" width="700px" cellpadding="0" cellspacing="10px"> | <table class="matte" width="700px" cellpadding="0" cellspacing="10px"> |
Revision as of 16:13, 21 January 2011
Radiosity with conventional lighting
This section will introduce you to the technique of combining conventional and radiosity lighting. In this part of the tutorial, we'll be using basically the same sample scene that's located at ~/scenes/radiosity/radiosity2.pov
, however by changing various radiosity parameters, we'll be able to explore the effects that those changes can have on the scenes appearance and in some cases the render time. Later on, in this tutorial, you can find examples of pure radiosity illumination.
Note: Unless otherwise stated all the images in this section were rendered with the following radiosity settings:
global_settings { radiosity { pretrace_start 0.08 pretrace_end 0.01 count 150 nearest_count 10 error_bound 0.5 recursion_limit 3 low_error_factor 0.5 gray_threshold 0.0 minimum_reuse 0.005 maximum_reuse 0.2 brightness 1 adc_bailout 0.005 } }
Finally, a few more things about the scene setup. All objects except the sky have diffuse 0.65
and emission 0
in their finish block. The sky sphere has a bright blue pigment (what a surprise) with diffuse 0
and emission 1.0
as finish attributes.
Note: If using the sky_sphere
object, which does not support the finish
keyword, instead of a sphere
object that does, you will need define a #default
finish in order to affect it's finish properties.
For example:
#default {finish { diffuse 0 emission 1 }}
Hint: You can easily turn radiosity on/off with the use of a conditional statement.
#declare UseRad = yes; global_settings { #if (UseRad) radiosity { rad settings ... } #end }
OK, let's get started! In this set of images we first have the scene as it should appear without radiosity, in other words the radiosity
block has been removed, next with the settings noted above, and finally an image showing the difference between the two. Looking at the difference image, you can see that radiosity greatly affects the shadowed areas when applied in combination with conventional lighting.
Note: The use of emission 1
in the finish block of the blue sky is what gives the bluish touch of the whole scene in the radiosity version, as it functions as kind of a diffuse light source.
Radiosity is a highly tunable process, and it comes equipped with a variety of tunable parameters that make it easy to strike a balance between quality and rendering speed. However, as with most things, higher quality means more render time. Patience is a virtue.
For instance, let's examine our test object with default settings, with our reference settings, and finally with some maddeningly high-quality settings. For comparison, below each image you can see the difference to the high-quality version.
Changing the brightness
changes the intensity of radiosity effects. Theoretically specifying brightness 0
would be the same as without radiosity, however in practice POV-Ray doesn't accept a zero value. As a rule brightness 1
should work correctly in most cases. If the effects are too strong you can reduce this, though this is not recommended, as it's usually an indication that your textures are too bright and your illumination too dim. Larger values can lead to quite strange results in most cases.
The recursion_limit
setting primarily affects the brightness of shadows, nooks and corners. The following group of images show the results of setting this parameter to 1, 2 and 5 respectively ...
... while this next grouping shows the difference when compared to our reference setting of recursion_limit 3
. As you can see, values higher than 3 do not lead to any better results in such a quite simple scene. In most cases values of 1 or 2 are sufficient, especially for outdoor scenes.
The error_bound
setting mainly affects the structures of the shadows. Values larger than the default of 1.8 do not have much effect, they make the shadows even flatter. Extremely low values can lead to very good results, but the rendering time can become very long, and you may need to modify other parameters to avoid a grainy appearance.
Somewhat related to error_bound is low_error_factor
. It reduces error_bound setting during the pretrace phase, changing this can be useful to eliminate artifacts. The difference images used the low_error_factor 0.5
case for comparison.
This next sequence of images illustrate the effect of count
. It is a general quality and accuracy parameter leading to higher quality and slower rendering at higher values. Keep in mind that higher count
isn't necessarily a cure-for-all when it comes to quality. The difference images were compared to a count 150
case.
Note: Until otherwise noted the following settings are being used to emphasize the effects of the next parameters we'll be examining.
recursion_limit 1
error_bound 0.2
low_error_factor 1.0
Another parameter that affects quality is nearest_count
. You can use values ranging from 1 to 20 the default is 5. Just like count
, higher values can lead to less artifacts and smoother appearance but slower rendering. The nearest_count
setting also accepts a second parameter, which activates adaptive pretrace, providing a good means of speeding up pretrace without significant loss of quality (not shown here) the value must be smaller than the first parameter (e.g. nearest_count 20,10
). When set, POV-Ray will stop pretracing individual areas of the image where the average sample density already satisfies this second value, thereby avoiding tracing low-detail areas over and over again for little gain, while still being able to drill down deep into high-detail areas. A setting of nearest_count 10
was used for the comparison.
minimum_reuse
influences at which minimum distance previous radiosity samples are always reused during calculation, affecting quality and smoothness in nooks and corners. Higher values generally give a smoother appearance, at the cost of corner detail, while lower values may cause corners to look splotchy unless the other parameters (most notably count
and nearest_count
) are set for higher quality as well.
As minimum_reuse
must be lower than maximum_reuse
, to avoid a parse error with the highest setting we're using minimum_reuse 4.0
for these next three images.
Another important value is pretrace_end
. It specifies how many pretrace steps are calculated and thereby strongly influences the speed. Usually lower values lead to better quality, but it is important to keep this in good relation to error_bound
.
Normally in the final trace no additional radiosity samples are taken unless absolutely needed. You can change this by adding always_sample on
, allowing you to increase pretrace_end
to speed up rendering. Note however that this is very prone to artifacts such as visible render block boundaries and horizontal "smearing", so it is usually only useful for test renders. You should also use a low setting for nearest_count
, or you may actually increase the rendering time (and the probability of getting the mentioned artifacts!).
The effect of max_sample
is similar to brightness
. It does not reduce the radiosity effect in general but weakens samples with brightness above the specified value.
You can strongly affect things with the objects' finishes. In fact that is the most important thing about radiosity. Normal objects should have emission finish 0 (default). Objects with emission > 0 actually act as light sources in radiosity scenes.
Remember that the default finish values used until now were diffuse 0.65 emission 0
.
Finally you can vary the sky in outdoor radiosity scenes. In all these examples it is implemented with a sphere object.
finish { emission 1 diffuse 0 }
and the pigment of the original sample scene were used until now. The following images show some variations: