|
 |
Karl Anders wrote:
> I feel that should be changed to
> color_map{
> [ 0 rgb < 1, 0, 0 > ]
> [ 1/6 rgb < 1, 1, 0 > ]
> [ 2/6 rgb < 0, 1, 0 > ]
> [ 3/6 rgb < 0, 1, 1 > ]
> [ 4/6 rgb < 0, 0, 1 > ]
> [ 5/6 rgb < 1, 0, 1 > ]
> [ 1 rgb < 1, 0, 0 > ]
> }
Or, you could change it to this:
-----
#macro _lerp(a,b,_t)
(a+(b-a)*_t)
#end
#macro _lerpColor(a, b, _t)
#local _color = _lerp(a,b,_t);
#local _magnitude = _color.x + _color.y + _color.z;
#local _scale = 3 / _magnitude;
_color * _scale
#end
#macro _stepColor(ta,ca,tb,cb,nSteps)
#local _count = 0;
#while (_count < nSteps)
[_lerp(ta,tb,_count/nSteps) color rgb _lerpColor(ca,cb,_count/nSteps)]
#local _count = _count + 1;
#end
#end
#declare ring3 = pigment {
radial
color_map {
_stepColor( 0/6, rgb x, 1/6, rgb x+y, 42 )
_stepColor( 1/6, rgb x+y, 2/6, rgb y, 42 )
_stepColor( 2/6, rgb y, 3/6, rgb y+z, 42 )
_stepColor( 3/6, rgb y+z, 4/6, rgb z, 42 )
_stepColor( 4/6, rgb z, 5/6, rgb z+x, 42 )
_stepColor( 5/6, rgb z+x, 6/6, rgb x, 42 )
}
}
-----
This interpolates between the various colors, making sure that each
steps has a constant saturation level (I used 3 here, as that would be
the value of rgb 1 (1+1+1), but any can be used for the same effect).
...Chambers
Post a reply to this message
|
 |