这个pigment
语句出现在我在网上找到的代码中,其中depth
是一个数字:
pigment{
function{(depth+1)/3}
color_map{[0 rgb <0,0,0>][1/3 rgb <0,0,1>][2/3 rgb <1,0,1>][1 rgb <1,1,1>]}
}
function{(depth+1)/3}
做什么?据我了解,这是返回(depth+1)/3
的常量函数。此函数在pigment
语句中的作用是什么?
好的,我现在明白了。这很容易。
如果深度=1,(深度+1(/3=2/3,那么颜色图返回2/3对应的颜色,即rgb<1,0,1>
。
如果深度 = 2,则 (深度+1(/3 = 1,则颜色映射返回rgb<1,1,1>
。
如果深度 = 0.5,则 (深度+1(/3 = 0.5,则颜色映射表返回在rgb<0,0,1>
(1/3( 和rgb<1,0,1>
(2/3( 之间插值的颜色。
color_map
是一个映射,函数的值给出了这个映射的"键"。