|
![](/i/fill.gif) |
"Neil Conway" <nei### [at] yahoo com> wrote in message
news:web.3e422e67c7b69b7a1c4fca030@news.povray.org...
>
> What I meant was, is the light emitted from an emission medium reflected
> from objects onto other objects? (I'm starting to get the idea, sorry it's
> so painfully slow.) I now believe the correct term is "inter-diffuse"
> reflection. I know that radiosity handles multiple reflections for regular
> light sources, but it's not immediately clear if the same applies to
> media...
>
[sample scene below]
Yes, provided you are using radiosity, inter-diffuse reflection is handled. What
is not handled is direct reflection. In other words, if you placed a mirror on a
red wall near some emitting media, then objects facing the wall would pick up
some red light (from the inter-diffuse reflection), but no white light (assuming
that an object was placed in the correct position to receive direct reflection
of the media via the mirror).
The only way that the direct reflection could be handled would be with photons,
which can only (iirc) be used with normal light sources, not emitting media.
One setting relating to inter-diffuse reflection in radiosity is
recursion_limit, which represents how many times light is allowed to "bounce"
before the radiosity calculation is abandoned.
The following scene will allow you to play with radiosity/photons/emitting media
and to see how they interact.
A few notes describing what you are seeing.
The camera is looking down on the scene.
There is a light and some emitting media at the same point
The light/media is in front of a small box with a white pigment
Beyond the small box is a larger one with a checker-board texture.
Some squares of the checker texture are pale green, the others are mirrors.
Radiosity will allow the small box to pick up some of the pale green
Photons will allow the small box to pick up the direct reflections from the
mirrored surfaces.
You will find that direct reflection will only occur when doPointLight and
doPhotons are both set to true.
// Persistence of Vision Ray Tracer Scene Description File
// File: ?.pov
// Vers: 3.5
// Desc: Basic Scene Example
// Date: mm/dd/yy
// Auth: ?
//
#version 3.5;
#include "colors.inc"
#declare doMedia = true;
#declare doRadiosity = true;
#declare doPhotons = true;
#declare doPointLight = true;
global_settings {
assumed_gamma 1.0
ambient_light 0
#if(doPhotons)
photons {
spacing 0.01
}
#end
#if(doRadiosity)
radiosity {
pretrace_start 0.08
pretrace_end 0.04
count 200
media on
recursion_limit 5
error_bound 0.75
}
#end
}
camera {
location <0.0,10,3>
look_at <0.0,0.0,3.01>
}
#if(doMedia)
sphere{
0,1 pigment{rgbf 1}
interior{
media{
emission 1
density{
agate density_map{
[0.5 rgb 0]
[1 rgb 20]
}
}
density{
spherical
}
}
}
hollow
translate y*2
photons{collect off pass_through} // required if media is not to block photons
}
#end
#if(doPointLight)
light_source {
0*x // light's position (translated below)
color rgb <1,1,1> // light's color
translate <0, 2, 0>
photons{}
}
#end
box{
<-4,-2,5>,<4,5,5.5>
texture{
checker
texture{
pigment{rgb<0.5,1,0.5>}
}
texture{
pigment{Black}
finish{reflection 1 diffuse 0}
}
}
photons{target reflection on refraction off}
}
plane{
y,-1 pigment{
bozo pigment_map{[0 Gray20][1 Gray80]}
}
photons{collect off}
}
box{
<-2,-5,0>,<2,1,1>
pigment{White} rotate x*-45 translate z*2
}
Post a reply to this message
|
![](/i/fill.gif) |