|
|
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'
|
|