首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL图形管道中的NURBS

OpenGL图形管道中的NURBS
EN

Stack Overflow用户
提问于 2013-02-16 13:56:10
回答 1查看 884关注 0票数 0

我很好奇NURBS是如何在图形处理器/ OpenGL图形管道中渲染的。我知道在OpenGL和GLUT中有各种调用,可以使用glMap和glMapGrid从编码的角度轻松渲染NURBS对象,但我不了解的是OpenGL执行此操作的过程。NURBS背后的思想是使用曲线来定义曲面,而图形管道似乎是围绕三角形光栅化和三角形网格构建的,而NURBS基于弯曲的Bezier曲线。

那么,从(高级)管道的角度来看,NURBS实际上是如何呈现的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-16 17:38:32

简单的答案是,它们不是在OpenGL管道中处理的,而是必须转换为GL管道可以处理的内容。一般的方法可能是首先转换为更实时友好的基本体,如bezier面片,然后在运行时将这些面片细分为三角形。

细分可以是规则的,将栅格映射到面片上,也可以基于曲率,在方差较高的地方细分面片。无论哪种方式,仅在某些顶点对曲面进行真实求值,并将其渲染为平面多边形(尽管着色器可用于创建适当平滑变化的法线,等等)。

glMap()等人(以前用于帮助渲染贝塞尔面片等)已被弃用,并且不再存在于现代OpenGL应用程序接口中。现在,您可以使用着色器来处理镶嵌。

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

https://stackoverflow.com/questions/14907454

复制
相关文章

相似问题

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