我正在尝试使用单个 3D 三次贝塞尔曲线来渲染“3D 色带”来描述它(色带的宽度是一定的)。第一个和最后一个控制点有一个与它们相关的法线向量(它们总是垂直于这些点的切线,并描述了这些点上色带的表面法线),我试图平滑地插入法线向量曲线的过程。
例如,给定一条形成字母“C”的曲线,第一个和最后一个控制点的表面法线都指向上方,色带应该从平面开始,与地面平行,然后慢慢转动,然后再次变平,面向与第一个控制点相同。要“顺利”完成此操作,它必须在曲线的中途面向外。目前(对于这种情况),我只能让所有表面朝上(而不是在中间向外),这会在中间产生难看的过渡。
这很难解释,我在这个例子的下面附上了一些图片,它现在看起来像什么(所有表面朝上,中间急剧翻转)和它应该是什么样子(平滑过渡,表面缓慢旋转)。银色面代表正面,黑色面代表背面。
不正确,它目前的样子:
正确功能区 http://img211.imageshack.us/img211/4659/ribbonincorrect.th.png
正确,它应该是什么样子:
功能区不正确 http://img515.imageshack.us/img515/2673/ribboncorrect.th.png
我真正需要的是能够为 3D 三次贝塞尔曲线上的任何点计算这个“混合法线向量”,我可以毫无问题地生成多边形,但我不知道如何让它们顺利旋转如图所示。完全不知道如何进行!