`
落花虽有意
  • 浏览: 182964 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

边的可见性

阅读更多

在 OpenGL 里面,边是具有可见性的,即我们可以让一条边显示或不显示在屏幕上,有时候我们必须让一些边隐藏起来,就像前面说过的利用绘制凸多边形来绘制凹多边形的时候就需要隐藏掉一些边。

 

边的可见性是利用 glEdgeFlag() 函数来说明的,该函数有一个参数,且只为 TRUE 或 FALSE ,分别表示可见和不可见,该函数位于两个 glVertex() 函数之间,说明由这两点构成的边的可见性。

 

如下画一条直线,你将什么也看不到:

	glBegin(GL_LINES);
	glVertex2f(-0.2f , -0.4f);
	glEdgeFlag(FALSE);
	glVertex2f(0.0f , -0.4f);
	glEnd();

 

PS:上面的一切都不可信,因为在实践中没有通过

分享到:
评论
1 楼 追求幸福 2011-02-14  
你的标题是“边的可见性”,文中也提到是“利用绘制凸多边形来绘制凹多边形的时候就需要隐藏掉一些边。”可你的例子却用了glBegin(GL_LINES);,glEdgeFlag这个函数是用来限制凸多边形的边的可见性,所以你的例子是没效果滴。
你可以试试这段code:
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glBegin(GL_POLYGON);
glEdgeFlag(GL_TRUE);
glVertex2f(-0.5f,0.0f);
glEdgeFlag(GL_FALSE);
glVertex2f(0.0f,0.0f);
glEdgeFlag(GL_TRUE);
glVertex2f(0.0f,-0.5f);
glEnd();

相关推荐

Global site tag (gtag.js) - Google Analytics