Ambient components of materials: default incorrect?

New Message Reply Date view Thread view Subject view Author view

From: Bram Stolk (bram++at++sara.nl)
Date: 06/12/2001 05:39:38


pfHello,

It looks like the default ambient component of a material
is not what you would expect.

From the manpage:
After createing a pfMaterial, the default colors are:

                       Light Component | Red Green Blue
                       ________________|___________________
                       PFMTL_AMBIENT | 0.2 0.2 0.2
                       PFMTL_DIFFUSE | 0.8 0.8 0.8
                       PFMTL_EMISSION | 0.0 0.0 0.0
                       PFMTL_SPECULAR | 0.0 0.0 0.0

More logical would be:
ambient and diffuse both to 1,1,1

At first, I thought that this was a bug in Performer, but it
turns out that OpenGL uses the same defaults, even though
in the OpenGL Programming Guide (red-book), it is stated that
"Ambient and diffuse reflectances define the color of the
 material and are typically similar if not identical"

This last statement makes a lot of sense:
The color of an object when lit with ambient light is highly
likely to be exactly the same as the color of the object
when it is lit with diffuse light. The red-book gives a good
example of a situation when you do want to use different values:
if the object is in a room with red walls, the object is likely
to have different ambient characteristics.
Note that in this case you require knowledge on other objects
in the proximity of the object you are specifying.

The .2,.2,.2 ambient component that OpenGL and Performer use
per default, was probably inspired by the idea that in outdoor
scenes you want more diffuse light than ambient light.
HOWEVER! this fact should be expressed in the color settings
of the lightsources, not in the color settings of the materials.

More evidence that the default ambient and default diffuse
components of a material should be identical, is on page 197
of the redbook:

"For real-world objects, diffuse and ambient reflectance are
 normally the same color. For this reason, OpenGL provides
 you with a convenient way of assigning the same value to both
 simultaneously with glMaterial*()"

How confusing: why providing this convenience, without having
a convenient default in the first place ????

A lot of modeling packages and modelers abuse ambient
settings, so in projects with a lot of data conversions, we
experience quite a few problems with this. To sanatize our
models, we try to adhere to the recommendations in the red-book,
unfortunately this seems to clash with default pfMaterials, and
even with the default OpenGL materials.

So, how are other people on this list treating ambient light and
the ambient component of material colors?

  Bram Stolk

-- 
------------------------------------------------------------------------------
 Bram Stolk, VR Specialist.
 SARA Academic Computing Services Amsterdam, PO Box 94613, 1090 GP  AMSTERDAM
 email: bram++at++sara.nl   Phone +31-20-5923059  Fax +31-20-6683167

"I heard if you play the NT-4.0-CD backwards, you get a satanic message." "Thats nothing, if you play it forward, it installs NT-4.0" ------------------------------------------------------------------------------


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Jun 12 2001 - 05:36:12 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.