第二十八课 贝塞尔曲面 这是一课关于数学运算的,没有别的内容了
来,有信心就看看它吧
贝塞尔曲面 作者: David Nikdel ( ogapo@ithink
net ) 这篇教程旨在介绍贝塞尔曲面,希望有比我更懂艺术的人能用她作出一些很 COOL的东东并且展示给大家
教程不能用做一个完整的贝塞尔曲面库,而是一个展示概念的程序让你熟悉曲面怎样实现的
而且这不是一篇正规的文章,为了方便理解,我也许在有些地方术语不当;我希望大家能适应这个
最后,对那些已经熟悉贝塞尔曲面想看我写的如何的,真是丢脸;-)但你要是找到任何纰漏让我或者 NeHe知道,毕竟人无完人嘛
还有,所有代码没有象我一般写程序那样做优化,这是故意的
我想每个人都能明白写的是什么
好,我想介绍到此为止,继续看下文
数学::恶魔之音::(警告:内容有点长~) 好,如果想理解贝塞尔曲面没有对其数学基本的认识是很难的,如果你不愿意读这一部分或者你已经知道了关于她的数学知识你可以跳过
首先我会描述贝塞尔曲线再介绍生成贝塞尔曲面
奇怪的是,如果你用过一个图形程序,你就已经熟悉了贝塞尔曲线,也许你接触的是另外的名称
它们是画曲线的最基本的方法,而且通常被表示成一系列点,其中有两个点与两端点表示左右两端的切线
下图展示了一个例子
这是最基础的贝塞尔曲线(长点的由很多点在一起(多到你都没发现))
这个曲线由4个点定义,有2个端点和 2个中间控制点
对计算机而言这些点都是一样的,但是特意的我们通常把前后两对点分别连接,因为他们的连线与短点相切
曲线是一个参数化曲线,画的时候从曲线上平均找几点连接
这样你可以控制曲线曲面的精度(和计算量)
最通常的方法是远距离少细分近距离多细分,对视点,看上去总是很完好的曲面而对速度的影响总是最小
贝塞尔曲面基于一个基本方程,其他复杂的都是基于此
方程为: t + (1 - t) = 1