题
我有一条折线网络,我想显示某个X-Y框内的所有线条部分。我目前正在使用GL_LINE_STRIP在OpenGL中渲染线条并且效果很好。但是,如果X-Y框的边界穿过其中一条线(顶点之间),是否有一种很好的方法可以显示框内部的线条部分?
感谢,
杰夫
解决方案
如果你的盒子只是一个普通的二维轴心矩形,你可以使用glScissor函数。简而言之,它在屏幕坐标中定义了一个2D矩形,所有绘图都在这里进行。
如果你的情况比较复杂(例如你可能在3D场景内的平面上有一个矩形,那么......)你可以先将你的矩形绘制到模板缓冲区中,并为线条渲染启用模板测试。这种方法为您提供了限制绘图的形状的无限灵活性,但在渲染过程中可能会略微变慢,并且需要花费更多精力进行设置。
其他提示
我认为Nils Pipenbrinck为您提供了最好的两个选项,但为了完整性,我会抛弃另一个选项:剪辑平面( glClipPlane())。
那就是说,我认为 glScissor()是最简单的解决方案,如果它始终是窗口对齐的。
不隶属于 StackOverflow