Unity Shader - 曲线2


之前我收集了一部分曲线写法:CG cosh, exp, sinh, smoothstep, tanh, perlin_easeCurve1/2 曲线


0~1衰減曲线短尾1

今天在 合理参考 别的项目中的 shader代码中,看到有一些 shader 中的写法:

        (_u_xlat16_28.x = ((_u_xlat16_6.x * -5.5547299) + -6.98316));
        (_u_xlat16_6.x = (_u_xlat16_6.x * _u_xlat16_28.x));
        (_u_xlat16_6.x = exp2(_u_xlat16_6.x));

都是一个 衰减 曲线

短尾:其尾部衰减比较快速,且比较平滑

f(x)=x (-5.554729)-6.98316, f1(x)=x f(x), f2=2^(f1(x)) {0≤x≤1}

f(x)=2^((-5.5x-6.6)x)

f ( x ) = 2 ( − 5.5 x − 6.6 ) x f(x)=2^{(-5.5x-6.6)x} f(x)=2(5.5x6.6)x

在这里插入图片描述

在这里插入图片描述


制作变体曲线

利用这个式子,我可以构建出几种变体,便于我们使用

衰减1就是原始版本的
在这里插入图片描述

衰减2
在这里插入图片描述

递增1
在这里插入图片描述

递增2
在这里插入图片描述


总结

这个曲线相比之前 CG cosh, exp, sinh, smoothstep, tanh, perlin_easeCurve1/2 曲线 的其他曲线消耗小一些
而且非常适合 定义域值域 都在 : [0~1] 范围的曲线来使用

猜你喜欢

转载自blog.csdn.net/linjf520/article/details/127184649
今日推荐