opengl - 可在 OpenGL 中表示的曲线

我是 CAD 开发的初学者,想了解一些有关 OpenGL 的知识。 我的主要目标是表示圆锥曲线、摆线、外摆线、内摆线、渐开线等 我可以用一些 trigonometry 直接代表他们吗? ,还是我需要将这些曲线转换为 B 样条曲线? 实际上我目前正在开发内核并且想要开发内核以便我无法显示上述曲线。(如果我不能以图形方式表示它们,那么在内核中支持这些曲线是没有用的!) 我对 OpenGL 了解不多,所以如果我的问题真的很愚蠢,请原谅我! 我试着搜索 here但找不到任何有用的东西。

最佳答案

OpenGL 可以使用赋值器直接渲染贝塞尔曲线和曲面,甚至可以使用 GLU API 渲染 NURBS。查看OpenGL Programming Guide了解更多信息。因此,您可以将这些曲线和曲面转换成这种形式。

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

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

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

https://stackoverflow.com/questions/7953189/

相关文章:

c# - ASP.NET 中的虚拟路径

PHP PDO - 可以连接但查询不工作

networking - BGP 与 OSPF 和 IsIs

php - 使用 PHP 检查字符串是否包含(CR、LF 或 CF 或 LF)或不包含

json - 将Json信息转换成F#列表

haskell - 在 Haskell 中打印元组内的值

wpf - 自动将文本框中的第一个字母大写

php - 使用 facebook sharer.php 与多个 url 变量共享一个 url

oracle - 检查临时表是否存在

css - 如何并排显示两个高度为 100% 的 Div?