首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL 3+渲染凹多边形(没有GLU)

OpenGL 3+渲染凹多边形(没有GLU)
EN

Stack Overflow用户
提问于 2015-09-23 14:29:39
回答 1查看 770关注 0票数 0

我想在Linux系统上使用C,OpenGL渲染凹多边形。有人能提供示例代码吗?在最新版本的OpenGL中如何做到这一点(假设根据glxinfo NVIDIA驱动程序352.41支持OpenGL 4.5,但无论您喜欢什么3+版本,它都支持在Linux上至少由NVIDIA在硬件上实现的扩展)。

堆栈溢出上的这个问题点使用GLU tesselation,这是不推荐的。使用模具缓冲的方法,我不完全理解,但如果这是“业界接受的标准”,现在这样做,我将投入更多的努力在理解。

这个帖子指的是一个我不想在Linux和C上使用的.NET库,tesselation着色器--我想要一个示例--如何使用,但是我可以找到的所有示例都是从凸起开始的,被废弃的库被移到另一个存储库中,我想转移到另一个存储库中。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-23 15:17:51

绝大多数OpenGL应用程序根本不绘制凹多边形;这不是API或硬件直接支持的东西,因此没有行业标准方法。模板将在框架缓冲区中实现,任何形式的凸分解都将在几何级别实现。

模板法其实并不难理解。比喻是跳篱笆:多边形的边缘是栅栏,多边形本身是封闭的土地。要确定一个点是否在土地内,可以从外面的任何地方开始,然后以一条直线走向它。数一数你要跳多少次篱笆才能到那里。每次你跳过篱笆,你都会从里面转到外面,反之亦然。因此,如果您跳过了偶数的栅栏,那么点必须在内部(例如,您从外到内一次,或者->在->外部->内,或者-> an -> must -> an -> must -> inside,等等)。如果你跳过一些奇数的篱笆,那肯定是在外面。

模板方法保持每像素的栅栏跳跃计数。

它画一个三角形扇形相对于一个不动点,即多边形的一个顶点。所以每个栅栏都有一个三角形,第三个坐标是一个固定的位置,你知道它在里面。

三角形内的像素是每个点,为了让你到达直线上的不动点,需要你跳过那个栅栏。

因此,任何位置的模板总数都是从那里跳转到多边形所需的栅栏数。

所以所有奇怪的模板结果都是内部的点。所有的结果都是外在的。

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

https://stackoverflow.com/questions/32742362

复制
相关文章

相似问题

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