2009-10-21 89 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()是最簡單的解決方案,如果它始終是窗口對齊。