|
![](/i/fill.gif) |
In my personal opinion, the current behaviour is the correct one.
What a color with component values greater than 1 does is to oversaturate
the image. Oversaturation usually means that it gets white (unless it's a
pure color, eg. pure red or pure yellow).
This is what happens with, for example, the sun. The light emitted by the
sun is not pure white, but it's so bright that it oversaturates it is seen
as white.
--
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}// - Warp -
Post a reply to this message
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
Trevor,
I agree with Warp that the values should be clipped at 1, but there
should be some way for a completely red object to saturate to white if
it is bright enough. Right now, a color will only saturate to white if
none of its color components are zero.
I have experimented with this a bit, and it seems to me that POV could
simulate saturation of bright light sources better.
What should be done? Well, the "red sensors" in your eye and on film or
in a video camera (or etc.) are also a little bit sensitive to green and
slightly sensitive to blue. To simulate this, the rendered colors could
be modified by
red_out = min( red + green/256 + blue/256/256 , 1.0);
green_out = min( red/256 + green + blue/256 , 1.0);
blue_out = min( red/256/256 + green/256 + blue , 1.0);
in POV's "color clip" function.
This would not break 24-bit images with ordinary light sources, and
would not have any significant computational cost.
- Ben
Post a reply to this message
|
![](/i/fill.gif) |