我是CAD开发的初学者想了解一些关于OpenGL的事情。 我的主要目标是代表圆锥曲线,摆线,外摆线,内摆线,渐开线等 我可以使用一些trigonometry直接表示它们,还是需要将这些曲线转换为B-Spline? 实际上我正在开发内核&想要开发内核,以便我不能显示上面提到的曲线。(如果我不能以图形方式表示它们,那么在内核中支持这些曲线是没有用的!) 我不太了解OpenGL,所以请原谅我,如果我的问题真的很愚蠢! 我尝试搜索here但找不到任何有用的内容。
答案 0 :(得分:4)
OpenGL可以使用评估器甚至NURBS使用GLU API直接渲染Bezier曲线和曲面。有关详细信息,请参阅OpenGL Programming Guide。因此,您可以将这些曲线和曲面转换为此形式。
但我强烈建议您不要使用这些功能,因为它们已被弃用(从较新的OpenGL版本的核心中删除),现在很可能用软件而不是硬件实现。
相反,您应该为这样的曲线和曲面实现自己的评估例程,以指定的采样率评估相应的方程并生成一个简单的顶点数组(可能还有索引数组)。通过这种方式,您可以使用VBO(在现代OpenGL中渲染内容的唯一方法)渲染为标准线条或三角形网格。
你甚至保持API不可知,因为一般的顶点数组也可以使用Direct3D或其他任何东西进行渲染。因此,这样您就不会使用绘制调用来污染CAD内核。它所需要的只是将参数曲线和曲面转换为顶点数组(可能是索引)的函数,并且内核的客户端/用户负责使用他喜欢的任何API绘制它们。
答案 1 :(得分:3)
如果我没错,OpenGL只适用于平面多边形。即使你可以检查GLUT库是否有任何方法来绘制上述数字,或谷歌搜索这些数字的.obj,然后缩放,旋转并将它们转换到所需的位置。