gpt4 book ai didi

c - OpenGL 3+ 渲染凹多边形(无 GLU)

转载 作者:太空宇宙 更新时间:2023-11-04 10:46:58 25 4
gpt4 key购买 nike

我想在 Linux 系统上使用 C、OpenGL 渲染凹多边形。任何人都可以提供示例代码如何在最新版本的 OpenGL 中完成(假设 OpenGL 4.5,根据 glxinfo NVIDIA 驱动程序 352.41 支持,但无论你喜欢什么 3+ 版本支持至少由 NVIDIA 在 Linux 上的硬件中实现的扩展) .

question在 stackoverflow 点上使用已弃用的 GLU tesselation。使用我不完全理解的模板缓冲区方法,但如果这是现在这样做的“行业公认标准”,我会付出更多努力来理解。

post指的是一个我不想在 Linux 和 C 上使用的 .NET 库,我很想举一个如何使用的曲面 segmentation 着色器的例子,但我能找到的所有例子都是从凸面补丁开始的,为了后代,不推荐使用的库移到了另一个我想离开的存储库。

谢谢。

最佳答案

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

模板方法实际上并不难理解。比喻是跳栅栏:多边形的边缘是栅栏,多边形本身是封闭的土地。要确定一个点是否在土地内部,从外面的任何地方开始,然后沿着直线走到它。计算您必须跳过栅栏多少次才能到达那里。每次你跳过栅栏时,你都会从里面切换到外面,反之亦然。因此,如果您跳过偶数个栅栏,则该点必须在内部(例如,您从外部到内部一次,或 -> 内部 -> 外部 -> 内部,或 -> 内部 -> 外部 -> 内部 -> 外部 -> 内部等)。如果您跳过了奇数个栅栏,那么它一定在外面。

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

相对于作为多边形顶点的固定点绘制三角形扇形。所以它是每个栅栏一个三角形,第三个坐标是您知道在里面的固定位置。

三角形内的像素是每个点,为了让您沿着直线到达固定点,需要您跳过栅栏。

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

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

关于c - OpenGL 3+ 渲染凹多边形(无 GLU),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com