|
|
|
|
|
|
| |
| |
|
|
From: clipka
Subject: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 08:36:11
Message: <4b093e4b@news.povray.org>
|
|
|
| |
| |
|
|
As good as MCPov renders tend look - they're actually physically wrong.
Have a look at this:
The following images show a 100% white diffusely reflecting plane
(actually a large slab; left side), illuminated from above by a glowing
square, side-by-side with a reference surface (right side).
The first image is created with POV-Ray 3.7.0.beta.34 using radiosity
(with brightness set to default, i.e. 1.0); the second is created with
MCPov 0.0.5 using montecarlo tracing.
The reference surface uses specular reflection only and should therefore
be independent of the lighting model; some deal of diffusion is achieved
by the use of highly irregular geometry (zillions of small spheres
scattered on the surface) and blurring of the reflection (using MCPov's
inbuilt mechanism, and simple small-scale normal pertubation in case of
POV-Ray, respectively). Reflection is perfect, i.e. 100%.
As you can see, POV-Ray's radiosity and MCPov's monte-carlo-tracing
seriously disagree about how bright a 100% diffusely reflecting surface
should appear. Although this may be partially due to gamma issues,
antialiasing differences or what-have-you, it is striking how POV-Ray
renders the surface right below the light source to very closely match
the reference surface, while MCPov renders it much darker - actually
quite exactly half as bright.
The question, of course, is: Which of the two is right? The reference
surface should allow to give an answer this question:
A 100% white surface is one that reflects /all/ incoming light. This is
something it has in common with a perfect mirror; actually, the only
thing that distinguishes the two is the direction in which the light is
reflected.
The reference surface attempts to simulate this, by being perfectly
reflective - that is, reflecting /all/ incoming light, too - but
irregularly shaped, in order to scatter the reflected light as uniformly
as possible. Therefore, it /should/ have about the same brightness as
the diffuse surface under test.
This is the case for POV-Ray's radiosity with default settings, but not
for MCPov's monte-carlo based model: Somewhere it is missing a factor of 2.
Ironically, the other way round would be easier to deal with: Radiosity
can be easily tuned in this respect via the "brightness" setting. As far
as I can see, there is no such setting in MCPov.
Now what exactly is the practical impact?
(A) MCPov materials will need a twice as high "diffuse" setting as
regular POV-Ray materials; a 100% white would require the parameter to
be set to 2.0. Alternatively, the pigment would have to be doubled.
It should be noted that simply increasing the overall scene illumination
will not solve the problem.
(B) Trying to compensate via the "diffuse" setting will adversely affect
the "conserve_energy" mechanism.
(C) Trying to compensate via the pigment will adversely affect filter
transparency as well as metallic reflection.
Post a reply to this message
Attachments:
Download 'rad_brightness_test_pov37.png' (323 KB)
Download 'rad_brightness_test.mcpov.png' (650 KB)
Preview of image 'rad_brightness_test_pov37.png'
Preview of image 'rad_brightness_test.mcpov.png'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
clipka <ano### [at] anonymousorg> wrote:
> As good as MCPov renders tend look - they're actually physically wrong.
> Have a look at this:
>
> The following images show a 100% white diffusely reflecting plane
> (actually a large slab; left side),...
> Reflection is perfect, i.e. 100%.
I don't think perfect reflection is physically possible. 100% white is tough
too.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
nemesis schrieb:
> clipka <ano### [at] anonymousorg> wrote:
>> As good as MCPov renders tend look - they're actually physically wrong.
>> Have a look at this:
>>
>> The following images show a 100% white diffusely reflecting plane
>> (actually a large slab; left side),...
>> Reflection is perfect, i.e. 100%.
>
> I don't think perfect reflection is physically possible. 100% white is tough
> too.
Nonetheless computations with such theoretical maximum values give clear
indications about the general quality of an algorithm. As far as that
goes, MCPov apparently sucks: It can do no more than 50% white without
adversely affecting some feature or the other, and that's /definitely/
below even the /practical/ maximum.
Whole milk, for instance, ranges at around 85%. And special materials do
indeed achieve a diffuse reflectance of 99% and higher in the visble
spectrum (e.g. Labsphere Spectralon).
As for perfect specular reflectance, I only used it to create a
reference surface in the image anyway, but for instance water-to-air
interfaces come extraordinary close to perfect reflection.
Post a reply to this message
|
|
| |
| |
|
|
From: Warp
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 11:52:32
Message: <4b096c50@news.povray.org>
|
|
|
| |
| |
|
|
nemesis <nam### [at] gmailcom> wrote:
> clipka <ano### [at] anonymousorg> wrote:
> > As good as MCPov renders tend look - they're actually physically wrong.
> > Have a look at this:
> >
> > The following images show a 100% white diffusely reflecting plane
> > (actually a large slab; left side),...
> > Reflection is perfect, i.e. 100%.
> I don't think perfect reflection is physically possible. 100% white is tough
> too.
Talk about missing the point... ;)
The point is, if mcpov is rendering a 100% white surface wrongly, it's
probably going to render a 50% white surface (perfectly possible in the
real world) wrongly too.
--
- Warp
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp <war### [at] tagpovrayorg> wrote:
> nemesis <nam### [at] gmailcom> wrote:
>
> > clipka <ano### [at] anonymousorg> wrote:
> > > As good as MCPov renders tend look - they're actually physically wrong.
> > > Have a look at this:
> > >
> > > The following images show a 100% white diffusely reflecting plane
> > > (actually a large slab; left side),...
> > > Reflection is perfect, i.e. 100%.
>
> > I don't think perfect reflection is physically possible. 100% white is tough
> > too.
>
> Talk about missing the point... ;)
I think it's perfectly on topic: how is a "physically-based" renderer supposed
to behave in the face of a situation beyond the realm of physics? Perhaps they
should do some phong shading?
Post a reply to this message
|
|
| |
| |
|
|
From: Warp
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 13:05:07
Message: <4b097d52@news.povray.org>
|
|
|
| |
| |
|
|
nemesis <nam### [at] gmailcom> wrote:
> > Talk about missing the point... ;)
> I think it's perfectly on topic: how is a "physically-based" renderer supposed
> to behave in the face of a situation beyond the realm of physics? Perhaps they
> should do some phong shading?
So he should have used eg. 50% white instead of 100% to keep you happy?
--
- Warp
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp <war### [at] tagpovrayorg> wrote:
> nemesis <nam### [at] gmailcom> wrote:
> > > Talk about missing the point... ;)
>
> > I think it's perfectly on topic: how is a "physically-based" renderer supposed
> > to behave in the face of a situation beyond the realm of physics? Perhaps they
> > should do some phong shading?
>
> So he should have used eg. 50% white instead of 100% to keep you happy?
95% white is ok, I guess, but I'm more concerned about the 100% reflexive
surface.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
nemesis schrieb:
> I think it's perfectly on topic: how is a "physically-based" renderer supposed
> to behave in the face of a situation beyond the realm of physics? Perhaps they
> should do some phong shading?
If physics has a /theoretical/ answer to a certain limit-case situation,
then a "physically-based" renderer should end up producing exactly that
answer when confronted with that case - or at least approach it.
What, btw, has phong shading to do with the test setup??
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
clipka <ano### [at] anonymousorg> wrote:
> If physics has a /theoretical/ answer to a certain limit-case situation,
> then a "physically-based" renderer should end up producing exactly that
> answer when confronted with that case - or at least approach it.
I see. What I see from physically-based renderer forums though is that in the
face of extreme conditions like that (way too high, unrealistic reflectance for
instance) renders tend to break and be very poor and noisy.
> What, btw, has phong shading to do with the test setup??
It's called irony. :)
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
nemesis schrieb:
> clipka <ano### [at] anonymousorg> wrote:
>> If physics has a /theoretical/ answer to a certain limit-case situation,
>> then a "physically-based" renderer should end up producing exactly that
>> answer when confronted with that case - or at least approach it.
>
> I see. What I see from physically-based renderer forums though is that in the
> face of extreme conditions like that (way too high, unrealistic reflectance for
> instance) renders tend to break and be very poor and noisy.
This is not a case of an algorithm becoming too noisy: This is a case of
an algorithm returning too dark colors. The phenomenon of MCPov getting
the brightness wrong by a factor of 2 is not just limited to 100% white
surfaces - I just chose that particular level of reflectivity because it
is easy to model a reference surface for it.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |