1

我有一个折线网络,我想显示某个 XY 框内的线的所有部分。我目前正在使用 GL_LINE_STRIP 在 OpenGL 中渲染线条,并且效果很好。但是,如果 XY 框的边界穿过其中一条线(顶点之间),是否有一种好方法可以只显示框内的线部分?

谢谢,

杰夫

4

2 回答 2

4

如果你的盒子只是一个普通的二维轴对齐矩形,你可以使用 glScissor 函数。简而言之,它在屏幕坐标中定义了一个 2D 矩形,所有绘图都在其中进行。

如果您的情况更复杂(例如,您可能在 3D 场景内的平面上有一个矩形等),您可以首先将您的矩形绘制到模板缓冲区并启用模板测试以进行线渲染。这种方法为限制绘图的形状提供了无限的灵活性,但在渲染过程中可能会稍微慢一些,并且需要更多的精力来设置。

于 2009-10-21T13:19:25.453 回答
1

我认为 Nils Pipenbrinck 为您提供了最好的两个选项,但为了完整起见,我将放弃另一个选项:剪辑平面(glClipPlane())。

也就是说,如果glScissor()始终与窗口对齐,我认为它是最简单的解决方案。

于 2009-10-22T02:14:26.520 回答