本文是OpenGL 4.0 Shading Language Cookbook的学习笔记。
在本文,我们将会使用曲面细分着色器绘制三次贝塞尔曲线。贝塞尔曲线是由四个控制点定义的参数曲线。这些控制点确定了整个曲线的形状。第一和第四个控制点定义了曲线的开端和终端,剩下两个顶点定义了曲线的形状,但这两个顶点并不一定位于曲线上。曲线通过对这四个控制点使用一组调配函数进行插值。调配函数定义了每个控制点的坐标对曲线的贡献。对于贝塞尔曲线,它的调配函数也被叫做伯恩斯坦多项式。
![587332f340626195e6e08c8879ad7a9e.png](https://i-blog.csdnimg.cn/blog_migrate/665e9de19d8a6aa712399963cfa2013e.png)
上面公式中的第一项是二项式系数函数(在下面给出),n是多项式的度,i是多项式的个数,t是参数项。
![95353bf789b415e2d294ad3f86b17931.png](https://i-blog.csdnimg.cn/blog_migrate/d4a06a58f50726d0f7dedb6cbe28aa51.png)
贝塞尔曲线的一般参数形式由伯恩斯坦多项式的乘积和构成。
![9aaecd77a9e5ad3dec5979adf7336c60.png](https://i-blog.csdnimg.cn/blog_migrate/ae6224f8a1ce301dde0d41a8fe547847.png)
在本例