![e2e07727b932eb3f2ec68ea03a9fc716.png](https://i-blog.csdnimg.cn/blog_migrate/6350a2a905534365a7fdda48291452a3.jpeg)
之前做的基于笔触的渲染只能渲染方形的笔触,所以准备基于向量场,使用线积分卷积的思路去检测出一堆控制点,然后用样条曲线生成平滑的笔触,于是尝试了一些样条插值的方法。具体有以下几种,节点的计算都在Compute Shader里进行。样条曲线分为样条插值和样条逼近,样条插值经过控制点,而样条逼近则不一定经过。
Catmull-Rom
样条插值方法,厄尔密样条(Hermite spline)的一种,因为在论文[1]中使用了这种方法生成笔触,所以实现了一下,效果如下,方块为控制点。
![8eada420f03855fe8b057dbccd045645.png](https://i-blog.csdnimg.cn/blog_migrate/39b96294b6d78ddb3d168c368242fa93.png)
Bezier
样条逼近方法。常用的贝塞尔曲线,实现的是分段二阶的版本。
![fa5e5a2ec3d43807ee9f8162ce1aebc4.png](https://i-blog.csdnimg.cn/blog_migrate/6b638de2a7b670d0587c70a6e09db98d.png)