【发布时间】:2014-10-14 21:08:42
【问题描述】:
多边形绘制成凸形似乎是标准。请参阅stackoverflow.com/questions/15556929/open-gl-polygon 但是,如果我选择填充它不适合我。如何在保持我定义的形状的同时填充我的多边形?
void drawFloor(){
// White
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); // GL_LINE works the way I want it too
//glDisable(GL_POLYGON_SMOOTH); // has no effect :(
glBegin(GL_POLYGON);
glColor3f(1.0, 1.0, 1.0);
glVertex3f(0, 0, 0); //0
glVertex3f(2*boxSize, 0, 0); //1
glVertex3f(2 * boxSize, -boxSize, 0); //2
glVertex3f(5 * boxSize, -boxSize, 0); //3
glVertex3f(5 * boxSize, 4 * boxSize, 0); //4
glVertex3f(6 * boxSize, 4 * boxSize, 0); //5
glVertex3f(6 * boxSize, 6 * boxSize, 0); //6
glVertex3f(0 * boxSize, 6 * boxSize, 0); //7
glVertex3f(0 * boxSize, 2 * boxSize, 0); //8
glVertex3f(1 * boxSize, 2 * boxSize, 0); //9
glVertex3f(1 * boxSize, 4 * boxSize, 0); //10
glVertex3f(2 * boxSize, 4 * boxSize, 0); //11
glVertex3f(2 * boxSize, 3 * boxSize, 0); //12
glVertex3f(3 * boxSize, 3 * boxSize, 0); //13
glVertex3f(3 * boxSize, 2 * boxSize, 0); //14
glVertex3f(2 * boxSize, 2 * boxSize, 0); //15
glVertex3f(2 * boxSize, 1 * boxSize, 0); //16
glVertex3f(0, 1 * boxSize, 0); //17
glEnd();
}
这段代码导致:
http://postimg.org/image/o4wt9ij33/ 与 GL_LINE http://postimg.org/image/l31fltgkf/ 带有 GL_FILL
我只想要填充多边形的内部,保持版本的形状与 GL_LINE。没想到GL_FILL的输出会有这么大的不同。
我想要的(用 MS Paint 创建): http://postimg.org/image/d3gbf613d/
我正在使用 Win7+ Visula studio express2013+ Renderer Intel HD Graphics 版本:3.1.0 - Bulid 8.15.10.2509+ GLSL 版本 1.40
【问题讨论】: