povray - POV-Ray:颜料声明中的函数有什么作用?
问题描述
该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
语句中的作用是什么?
解决方案
好的我现在明白了。这很容易。
如果depth = 1,(depth+1)/3 = 2/3,那么颜色图返回2/3对应的颜色,即rgb<1,0,1>
。
如果 depth = 2, (depth+1)/3 = 1,那么颜色图返回rgb<1,1,1>
.
如果 depth = 0.5,(depth+1)/3 = 0.5,那么颜色图返回在rgb<0,0,1>
(1/3) 和rgb<1,0,1>
(2/3) 之间插值的颜色。
Acolor_map
是一个map,函数的值给出了这个map的“key”。