Specifying only emissiveColors and zero difsuse, specular, emissive, and
ambient colors is the way to specify pre-computed lighting. It is expected
that browsers will be able to recognize this as a special case and optimize
their computations. For example:
Material {
ambientColor [] difsuseColor [] specularColor []
emissiveColor [ 0.1 0.1 0.2, 0.5 0.8 0.8 ]
}
It is also expected that simpler rendering systems will be unable to support
both lit and unlit objects in the same scene.
Many VRML implementations will support only either multiple difsuse colors
with a single value for all other fields, or multiple emissive colors with
one transparency value and NO (empty, '[]') values for all other fields. More
complicated uses of the Material node should be avoided.
OpenGL (and Inventor) certainly supports lit, per-vertex materials, so I
don't think we should eliminate multiple difsuseColors. If other renderers
can't support lit, per-vertex materials then they can just arbitrarily choose
one material for each face (or one material for the entire object if they
don't support lit, per-face materials).