POV-Ray : Newsgroups : povray.unofficial.patches : MCPov: Diffuse Reflection - UR Doin' it Wrong Server Time
4 Dec 2024 02:53:05 EST (-0500)
  MCPov: Diffuse Reflection - UR Doin' it Wrong (Message 1 to 10 of 11)  
Goto Latest 10 Messages Next 1 Messages >>>
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'
rad_brightness_test_pov37.png

Preview of image 'rad_brightness_test.mcpov.png'
rad_brightness_test.mcpov.png


 

From: nemesis
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 09:45:01
Message: <web.4b094dd610ccfa8151b504a30@news.povray.org>
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

From: clipka
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 11:21:12
Message: <4b0964f8$1@news.povray.org>
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

From: nemesis
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 12:55:00
Message: <web.4b097a8310ccfa816672c09b0@news.povray.org>
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

From: nemesis
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 13:20:01
Message: <web.4b0980c510ccfa816672c09b0@news.povray.org>
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

From: clipka
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 13:22:55
Message: <4b09817f$1@news.povray.org>
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

From: nemesis
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 13:35:01
Message: <web.4b09844210ccfa816672c09b0@news.povray.org>
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

From: clipka
Subject: Re: MCPov: Diffuse Reflection - UR Doin' it Wrong
Date: 22 Nov 2009 14:11:49
Message: <4b098cf5$1@news.povray.org>
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

Goto Latest 10 Messages Next 1 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.