POV-Ray : Newsgroups : povray.binaries.images : Ambient and cast shadows on metallic textures : Ambient and cast shadows on metallic textures Server Time
29 Nov 2021 19:17:27 EST (-0500)
  Ambient and cast shadows on metallic textures  
From: Cousin Ricky
Date: 24 Nov 2021 22:14:50
Message: <619effaa@news.povray.org>
It has become conventional wisdom around here, perhaps started by
clipka, that metallic finishes should have zero ambient, and Alain has
been carrying that banner ever since.  I have been skeptical, however.

It seems to me that no cast shadow should be visible on a 100% specular
surface, and this is easily verified with a mirror or a chrome fixture.
What's more, I realized early on that, whatever the texture, the ambient
should be proportional to the diffuse component; therefore, a 100%
specular surface--which has a zero diffuse component--should of course
have zero ambient.

However, I have examined less shiny metallic surfaces, and they do
reveal faint cast shadows--the duller the surface, the more prominent
the shadow.  This implies the real-life equivalent of a 'diffuse'
component to these metals, and I do not see how a texture can have a
diffuse component without picking up diffuse environmental light--i.e.,
a non-zero ambient.

Reflection + diffuse should never exceed 1.0, so for a finish that is
mostly specular, keeping ambient proportional to diffuse ensures a very
low ambient.  But does this proportionality hold for metals?  Should the
ambient be zero regardless?  I have often treated 'diffuse' as a crude
proxy for blurred reflection--which does *not* imply a non-zero
ambient--but my observations of cast shadows show that there really is a
diffuse-equivalent in real life, perhaps due to dust, grime, or oxidation.

Image metal_ambient-pbi.jpg shows metal spheres with varying levels of
specular reflection, and a post used to cast a shadow on each sphere.
On each sphere, the 'diffuse' is calculated as half of what is not
specularly reflected.  For example, reflection { 1.00 metallic } has
diffuse 0, and reflection { 0.50 metallic } has diffuse 0.25.  The left
column sets ambient proportionately to the diffuse, and the right column
sets ambient to zero.  The middle column uses radiosity, and sets zero
ambient on all surfaces throughout the scene.

The radiosity cases are used as controls, to see how POV-Ray deals with
metallic surfaces with a diffuse component.  The shadows cast with
non-zero ambients (left) are better matches to the radiosity controls
than the shadows cast with zero ambients (right).  The same is true of
the reflected tiles.

(You may notice that the spheres also vary roughness with specular
reflection, but this is not at all relevant to the question of ambient &

For completeness, I also decided to test whether cast shadows show up on
100% specular surfaces with blurred reflection.  Image
metal-blur-shade-pbi.jpg shows spheres with reflection { 1.00 metallic }
and varying levels of blurred reflection.  Cast shadows show only where
they interrupt the blurred highlight.  So, if POV-Ray's modeling is
accurate, this means that the dull metals I examined IRL should be
modeled with a small diffuse component--and per the previous test,
should have a correspondingly tiny ambient component.

Post a reply to this message

Download 'metal_ambient-pbi.jpg' (340 KB) Download 'metal-blur-shade-pbi.jpg' (154 KB)

Preview of image 'metal_ambient-pbi.jpg'

Preview of image 'metal-blur-shade-pbi.jpg'


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