Bias公式

背景

看houdini的Bias Vop中是这么解释的此文来自机器猫的博客:blog.csdn.net/cuckon

The Bias VOP is based on Perlin’s section in Texture & Modeling, and is currently only used in some of the older materials.

The basic process is to take:此文来自机器猫的博客:blog.csdn.net/cuckon

result = amount / ( ((1/value) - 2) * (1 - amount) + 1);

Where value is the Input, and amount is the Bias.此文来自机器猫的博客:blog.csdn.net/cuckon

对这个公式很不理解,借助于wolframalpha,以及查阅资料,终于搞明白了。其实很简单,但真是聪明。

解释

在合成或者其他需要让值“偏高”或者“偏低”的时候有很多方法,比如gain就是简单的乘上一个因子,offset就是加上一个数,但如果把0和1固定,让中间偏高偏低,现在最常用的莫过于gamma。好处一方面是两端(0和1)是固定的,另一方面,中间的值都是光滑连续,柔和的过渡过去的。但是gamma有个问题就是不是特别直观,比如,gamma=8的时候你能想象出0.5的地方的值具体偏到什么程度吗?此文来自机器猫的博客:blog.csdn.net/cuckon

所以Perlin就发明了这么个bias公式,用amount明确指定0.5的时候“有多偏”,value是输入的代求的位置。比如:如果想让曲线的中间点=0.8,那令amount=0.8,那这个公式的曲线就是光滑的而且写成函数f(x)的话f(0)=0, f(0.5)=0.8, f(1)=1。如果amount=0.5,那就是f(x)=x的一条直线。非常的直观。此文来自机器猫的博客:blog.csdn.net/cuckon

以下是这个函数在0~1的图像。x表示amount,y表示bias。可以看到x=0.5的时候,垂直于x轴的那条线是直的,而x>0.5的面都是上拱,x<0.5的面下凹,而且在另一个轴向y=0.5出也是一条直线,所以不管是上拱还是下凹,f(0.5)=amount。此文来自机器猫的博客:blog.csdn.net/cuckon

此文来自机器猫的博客:blog.csdn.net/cuckonBias公式_第1张图片此文来自机器猫的博客:blog.csdn.net/cuckon


可以到这里看一下这个函数的具体图像。此文来自机器猫的博客:blog.csdn.net/cuckon

另外这个公式的另一种形式是,amount和bias是完全可以互换的。此文来自机器猫的博客:blog.csdn.net/cuckon


你可能感兴趣的:(CG,Misc)