是否有可能告诉OpenGL绘制4度(5个控制点)bezier曲线和10个细分?
我正在尝试这个:
point ctrlpts[] = {..., ..., ..., ...};
glMap1f(GL_MAP1_VERTEX_3, 0, 1, 3, 5, ctrlpts);
glBegin(GL_LINE_STRIP);
for (i = 0; i <= 30; i++)
glEvalCoord1f((GLfloat) i/30.0);
glEnd();
但这只是很好地绘制曲线。我想我希望贝塞尔曲线内的算法只绘制到10个细分然后停止。这条线应该看起来有点小。
答案 0 :(得分:4)
好吧,只需从0循环到10并除以10。
OpenGL只知道平面基元。曲线超出了它的掌握范围。评估人员所做的是,它们允许您告诉OpenGL系数的插值函数,然后告诉OpenGL对给定参数的函数进行采样。
技术上,OpenGL评估员是过时的技术。它们也没有硬件加速,也没有使驱动程序开发更简单。它们被从OpenGL-3核心中移除,原因很简单,您可以使用顶点着色器实现评估器之类的功能,然后由GPU加速,您可以在其上放置tesselators以在GPU上生成采样点好。