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

感谢,

杰夫

有帮助吗?

解决方案

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

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top