2009-10-21 92 views
1

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

感谢,

杰夫

回答

4

如果你的盒子只是一个普通的二维,轴alined矩形您可以使用glScissor功能。简而言之,它定义了一个以所有绘图发生的屏幕坐标的2D矩形。

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

+0

感谢您的快速回复。 – 2009-10-21 13:21:28

1

我认为尼尔斯皮彭布林克给了你最好的两个选择,但我会抛出另一个只是为了完整性:剪辑平面(glClipPlane())。

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