我希望在opengl中使用outline&amp ;;渲染20k + 2D多边形。继续进行。
有些多边形是凹的。
是否可以使用着色器执行此操作?
答案 0 :(得分:2)
您不需要着色器:
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); //Fill
glDrawElements(...);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); //Outline
glDrawElements(...);
如果多边形是凹的,你必须手动或使用gl实用程序库glu来对它们进行镶嵌。看gluNewTess
。如果您决定自己对多边形进行镶嵌,则必须记住设置正确的边缘标记,以便不渲染镶嵌的内边缘,请参阅glEdgeFlagPointer
。
编辑:我发现以下link有关如何使用模板缓冲区渲染凹多边形的信息。