我希望在 opengl 中使用轮廓和填充来渲染 20k+ 2D 多边形。
一些多边形是凹的。
是否可以使用着色器来做到这一点?
为此,您不需要着色器:
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); //Fill
glDrawElements(...);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); //Outline
glDrawElements(...);
如果多边形是凹面的,则必须手动或使用 gl 实用程序库 glu 对它们进行镶嵌。看gluNewTess
。如果您决定自己细分多边形,您必须记住设置正确的边缘标志,以便不渲染细分的内部边缘,请参阅glEdgeFlagPointer
。
编辑:我找到了关于如何使用模板缓冲区渲染凹多边形的以下链接。