|
![](/i/fill.gif) |
Wasn't it JPGargoyle who wrote:
>Hi all!
>This is my very first post ever :))
>
>I am still a beginner so mabe this post might be somewere else. If that is
>the case, my apologies to all.
>Well, I was experimenting with PovRay 3.5 beta 7 and I was trying to get the
>"negative" of a color when I get some unexpected results (at lest to me :D).
>
>My question is: Is rgb 1 the same as rgb <1,1,1> ?
Technically, yes, but 1 isn't the same as <1,1,1>.
The colour "1" is the same as <1,1,1,1,1>, but when you stick "rgb" at
the front it becomes <1,1,1,0,0>.
>pigment{color rgb 1} gives the same result as pigment{ color rgb <1,1,1>}
>but
>pigment{color rgb <1,1,1> - Gray25} gives the expected results and
>pigment{color rgb 1 - Gray25}results in something completely different.
What happens is that the expression "1 - Gray25" is expanded to
<1,1,1,1,1> - <0.25,0.25,0.25,0,0>
giving the result <0.75,0.75,0.75,1,1> instead of <0.75,0.75,0.75,0,0>
The following code can be used to see what happens with different colour
expressions.
#include "colors"
//#declare MyColour = White - Gray25;
//#declare MyColour = 1 - Gray25;
#declare MyColour = rgb 1 - Gray25;
#debug str(MyColour.red,0,2)
#debug ", "
#debug str(MyColour.green,0,2)
#debug ", "
#debug str(MyColour.blue,0,2)
#debug ", "
#debug str(MyColour.filter,0,2)
#debug ", "
#debug str(MyColour.transmit,0,2)
#debug "\n"
It could be argued that "rgb" should force the filter and transmit
values to zero, rather than just display the warning and accept non-zero
filters and/or transmits. (You did notice that you were getting the
warning "Suspicious expression after rgb.", didn't you?)
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
![](/i/fill.gif) |