2010-01-13 37 views

回答

2

你不需要着色器这样的:

glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); //Fill 
glDrawElements(...); 
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); //Outline 
glDrawElements(...); 

如果多边形是凹的,你必须tesselate他们,无论是手动或使用GL工具库,谷氨酸。看看gluNewTess。如果您决定亲自拼凑多边形,则必须记住设置正确的边缘标记,以免呈现镶嵌的内部边缘,请参阅glEdgeFlagPointer

编辑:我发现以下link关于如何使用模板缓冲区来渲染凹多边形。

+0

如果某些多边形是凹的? – madcat 2010-01-13 08:08:11

+0

@madcat查看更新回答 – 2010-01-13 09:22:24

+0

谢谢!会尝试。但是,镶嵌必须在CPU上完成,而不是使用着色器? – madcat 2010-01-13 09:49:50