POV-Ray : Newsgroups : povray.object-collection : Metal textures uploaded : Metal textures uploaded Server Time
2 Feb 2023 23:15:39 EST (-0500)
  Metal textures uploaded  
From: Cousin Ricky
Date: 9 Mar 2013 15:05:01
Message: <web.513b946be79982278641e0c0@news.povray.org>
I have uploaded module RC3Metal for creating metallic textures.  It can be
downloaded at:


Soon after downloading POV-Ray in 2003, I noticed a couple of problems with the
metallic textures in the standard include files: they don't take advantage of
POV-Ray's built-in metallic reflection, and they have unrealistically high
ambient values.  The second issue has been noted by other POVers, and becomes a
problem when radiosity is used.  The POV-Ray textures are probably the way they
are for legacy reasons, so I don't expect them to change.

It quickly became clear to me that diffuse and ambient levels should decrease as
specular reflection increases, so in 2004, I wrote a macro to do just that.  The
radiosity problem is mooted by POV-Ray 3.7, but it's still useful to have finish
values automatically adjusted in response to specular reflection.

Along the way, I tried gathering spectral reflectance data for various metals.
This was a frustrating, and probably futile, effort.  Search "RSOCP overkill"
for some 2007 results of that effort.  Since 2011, I've been procrastinating
about finding more confident colors (entailing spending money on or borrowing
equipment), but finally decided to post what I have, mindful that the user is
not obligated to use them.  My sense is that many of the values are good for
new, polished surfaces, but too high for most every day surfaces.

After a short exchange with clipka yesterday in the "HDRI settings" thread in
p.b.i, and a quick trip to a hardware store, I decided to go with a combination
of specular highlight and high brilliance for diffuse surfaces.  However, when I
started adapting my macros for the Object Collection in 2011, mindful of my
ignorance of quantum electrodynamics, I implemented the transfer functions as,
well, functions.  This was comforting.  If you don't like my decision from
yesterday, you can always do something like:

#include "rc3metal.inc"
#undef RC3M_fn_Brilliance
#declare RC3M_fn_Brilliance = function (x) { 1 }
#undef RC3M_fn_Specular
#declare RC3M_fn_Specular = function (x) { x }

Post a reply to this message

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