关于控制点的权因子在opengl下的体现。准备画一条nurbs曲线的时候想到的,貌似在opengl的库函数里,无论是gluNurbsSurface还是gluNurbsCurve里面都没有看到关于权因子的参数啊,那么怎么画nurbs曲线呢?
开始注意的是函数中的最后一个type参数GL_MAP1_VERTEX_3和GL_MAP1_VERTEX_4,嗯,如果体现的话,应该是坐标的第四个参数,就是齐次坐标。关于齐次坐标,资料上也没有详细提它的用处,只简单的介绍了一下它与三维坐标的变换,就是三个坐标都除以齐次的那个坐标。
想想应该就是这样了,开始动手了。又遇到了一个问题,曲线根本不正确。因为用的是一个pp上的例子,参数应该没问题,然后就反复的查找原因,开始我想是不是权因子错了,但改了一下图形反而更不对了。google了一下,看了狠多例子后,发现是自己权因子的用错了,并不是简单的设置w参数的,要考虑到因此而改动的三维坐标,保持一致性。
那么修改后的坐标参数应该是(x*w, y*w, z*w, w)而不是简单的(x, y, z, w)。