首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可用OpenGL表示的曲线

可用OpenGL表示的曲线
EN

Stack Overflow用户
提问于 2011-10-31 19:39:08
回答 2查看 1.8K关注 0票数 2

我是一个CAD开发的初学者,想知道一些关于OpenGL的事情。我的主要目标是表示二次曲线,摆线,外摆线,内摆线,渐开线等。我可以用一些trigonometry直接表示它们吗,或者我需要把这些曲线转换成B样条曲线吗?实际上,我现在正在开发内核&我想开发内核,这样我就不能显示上面提到的曲线。(如果我不能用图形表示这些曲线,那么在内核中支持这些曲线是没有用的!)我不太了解OpenGL,所以如果我的问题真的很愚蠢,请原谅我!我试着在here上搜索,但没有找到任何有用的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-31 20:18:51

OpenGL可以使用求值器直接渲染贝塞尔曲线和曲面,甚至可以使用GLU API渲染NURBS。有关详细信息,请参阅OpenGL Programming Guide。所以你可以把这些曲线和曲面转换成这样的形式。

但我强烈建议您不要使用这些功能,因为它们已被弃用(从较新的OpenGL版本的核心中删除),现在可能会在软件中实现,而不是在硬件中实现。

相反,您应该为这些曲线和曲面实现自己的求值例程,这些例程以指定的采样率对相应的方程进行求值,并生成一个简单的顶点数组(可能还有索引数组)。这样,您就可以为将来做好准备,因为可以使用VBO将这些内容渲染为标准线条或三角形网格(在现代OpenGL中渲染某些内容的唯一方法)。

你甚至可以保持与API不可知,因为一般的顶点数组也可以使用Direct3D或其他任何东西来渲染。这样你就不会因为绘图调用而污染你的CAD内核。它所需要的只是一个将参数曲线和曲面转换成顶点(也许还有索引)数组的函数,内核的客户端/用户负责使用他喜欢的任何API绘制这些顶点和曲面。

票数 5
EN

Stack Overflow用户

发布于 2011-10-31 19:57:18

如果我没记错的话,OpenGL只适用于平面多边形。尽管如此,你可以检查GLUT库是否有任何方法来绘制上述图形,或者谷歌搜索这些图形的.obj,并将它们缩放、旋转和平移到所需的位置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7953189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档