这一章节又是修正之前的错误。“Q97:怎么用三角形网格细分Bezier曲面——以Utah Teapot为例”
(http://blog.csdn.net/libing_zeng/article/details/69360492)
之前文章中的三角形的顶点是错误的,导致最终曲面是向里面的(而不是向外面的)。
重复贴出之前的代码截图:
根据Bezier曲面的“定义”(即两条Bezier曲线的张量积)。其中u、v分别可以理解为水平、垂直方向的参数。所以,根据上方的代码,会有如下示意图:
根据这个示意图,从图中取三点构成三角形,使得三角形的法向量向外。为了确保法向量的方向,三角形的顶点是有顺序要求的的。
之前构成三角形的代码截图如下:
我们知道三角形的法向量求法如下:
所以,按照“之前构成三角形的代码”,得到的两个三角形的法向量向里面的,从而导致整个Bezier曲面的法向量指向里面。怎么修改呢?最简单的修改方式:(交换v1、v2的顺序)