没有绘制点数

时间:2016-03-02 08:51:31

标签: opengl opengl-2.0 opengl-1.x

首先:是的,我知道这是一个非常过时的编程接口。但有些目标机器甚至不能保证OpenGL 2.1,这就是为什么它仍然需要使用。

我的问题:使用OpenGL绘制一些几何图形时,不会绘制仅包含2个点的点和折线。是否存在具有至少三个坐标点的折线,它可以顺利运行。所以这不起作用:

glBegin(GL_POINT);
glVertex3f(...);
glEnd();

glBegin(GL_LINE_STRIP);
glVertex3f(...);
glVertex3f(...);
glEnd();

...虽然这会按预期产生结果:

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);

知道这种行为的原因是什么?为什么没有绘制简单的线条和点?

1 个答案:

答案 0 :(得分:-1)

尝试GL_POINTS而不是GL_POINTGL_POINTS是一种Enumeration,它告诉OpenGL渲染点。我相信GL_POINT用于修改渲染模式(渲染实体多边形(GL_FILL),渲染线框多边形(GL_LINE),或渲染多边形的断开顶点(GL_POINT) )。我想先澄清一下,但当时想不出一个很好的解释方法。