首先:是的,我知道这是一个非常过时的编程接口。但一些目标机器甚至不保证OpenGL 2.1,这就是为什么它仍然必须使用的原因。
我的问题:使用OpenGL绘制某些几何图形时,无法绘制仅由两个点组成的点和多段线。如果有至少有三个坐标点的多段线,它将平滑工作。所以这是不起作用的:
glBegin(GL_POINT);
glVertex3f(...);
glEnd();
glBegin(GL_LINE_STRIP);
glVertex3f(...);
glVertex3f(...);
glEnd();...while这将按预期创建结果:
glBegin(GL_LINE_STRIP);
glVertex3f(...);
glVertex3f(...);
glVertex3f(...);
...
glEnd();这是我的初始化:
glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
glEnable(GL_POINT_SMOOTH);
glEnable(GL_POLYGON_SMOOTH);
glShadeModel(GL_SMOOTH);
glHint( GL_POINT_SMOOTH_HINT, GL_NICEST );
glHint( GL_LINE_SMOOTH_HINT, GL_NICEST );
glHint( GL_POLYGON_SMOOTH_HINT, GL_NICEST );
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-0.5f, 0.5f, -0.5f, 0.5f, 1.0f, 1000.0f);你知道这种行为的原因是什么吗?为什么不画简单的线条和点呢?
发布于 2017-02-09 17:33:05
尝试使用GL_POINTS而不是GL_POINT。GL_POINTS是一种告诉OpenGL渲染点的枚举。我相信GL_POINT用于修改渲染模式(渲染实体多边形(GL_FILL)、渲染线框多边形(GL_LINE)或渲染多边形的断开顶点(GL_POINT))。我之前想要澄清,但当时想不出一个好的方法来解释它。
https://stackoverflow.com/questions/35742382
复制相似问题