
请仔细看它们有何区别,左边的和右边的,事实上即使你看了一天也不会发现它们有何差别,他们是结果完全一样的渲染图,但参数并不相同,观察只有thickness和GlobalScale两个值不同,那为什么结果会一样呢,我想你发现了,它们的积是相等的,2.0*1.0=0.5*4.0结果都是2.0m即两张图中光线的渗透深度是一样的,由于其他参数都一样,结果理所当然不会有任何差别。所以下次当你控制光线的渗透深度时,别忘了检查GlobalScale的值是否设置妥当了,否则效果可能出乎你意料之外。
一般情况下我不喜欢动这个值,就让他为默认值1,这样我能更好的依据真实场景中物体的尺寸来设置thickness以使其看上去更加真实,只有在光渗透实在不尽如人意时,我才加大GlobalScale来稍稍增大一下渗透深度,这种做法就好像用曝光控制来调节明暗度一样,是全局的效应,往往是最后再来调节的。
这里我们还需要注意一个问题,thickness的值是有单位的,单位和世界尺寸中的单位是一样的,如场景中那个2.0m长的物体,由左图的那种情况根据公式计算得知2.0*1.0=2.0m,这说明光线能够最大限度地射入物体2.0m的地方。换句话说,这就是物体在这一方向上的次表面作用范围,光散射作用仅发生在这一区域内。这个时候有一个问题也随之产生,T*GS的值也就是最后得到的D(光线渗透深度)大于物体的在受光方向上的长度会发生什么?事实上这种情况完全可能发生,因为thickness的取值几乎没有限制。巴西是这样处理这一问题的,我称它为反馈,看一下下面这张图示:

在图中你可以发现,巴西不会因为物体的实际长度而停止计算光线的多余渗透,只是最终的结果只对应到物体的实际长度上而已,换句话说,将thickness的值设得高于物体的实际长度的意义在于你可以得到光线更深入的结果。而反过来说假如T*GS的值也就是实际的深度计算结果要小于物体实际受光方向上的长度的话,那么未对应的部分将完全呈现材质的diffuse特性,因为巴西认为那里无散射发生,事实就是如此。所以我通常称T*GS控制的深度区域叫作散射层或杂质层,意思就是说这里是真正发生散射计算的区域。
所以当你要制作不同深度的次表面散射效果时,给一些不同的thickness值就可以了,让GlobalScale作全局的控制,下面是不同thickness 值下的效果对比:

评论加载中…