|
|
Am 30.01.2013 14:58, schrieb scott:
> My understanding from real life is that colour is handled differently in
> each case though. When I see a blue piece of plastic it's blue because
> all the light being reflected off it has its spectrum attenuated
> accordingly to make it blue. But when I see a glossy specular reflection
> (even if blurred slightly) in the same material the colour is not
> changed (white lights still appear white, not blue).
>
> My assumption therefore is that the spectral attenuation that gives the
> appearance of colour somehow affects light more the further away the ray
> is from direct mirror reflection.
No, that is not the case.
Instead, the following two physical effects will happen (except for
metals, which follow different physical effects):
(1) At the very surface of an object, specular reflection is happening,
more or less blurred depending on how rough the surface is, and more or
less strong depending on both the material's index of refraction and
surface structure. This reflected light will /always/ be "white", and
its distribution will /always/ be related to the incoming light direction.
(2) Any light that is not reflected will penetrate into the object and
scatter around in the material, where it will be subject to filtering
(depending on wavelength), and if it is not thus "swallowed" it will
ultimately exit the object once again in a very random direction. This
scattered light will /always/ be "colored" depending on the material,
and its distribution will (almost) /always/ be (almost) totally
independent of the incoming light direction.
> It appears however mcpov does not
> allow for this. In the current POV this isn't an issue as specular and
> diffuse reflection are very clearly separated and you can choose the
> colour and amount of each, but if something like mcpov is to be
> incorporated into POV then the two terms become blurred and it's not
> clear how to correctly simulate the real life situation.
MCPov does it exactly the way it should be done (except that it has a
bug in computing the contribution from (2), getting it wrong by a factor
of 2, but that's another story).
Post a reply to this message
|
|