打开GL绘制静态点

时间:2013-05-26 16:17:57

标签: opengl static drawing cloud point

是否可以在Open-GL中绘制静态Point-Cloud

glBegin(GL_POINTS);

for(float x = -1; x < 1; x += 0.1) 
{
    for(float y = -1; y < 1; y += 0.1) 
    {
        for(float z = -1; z < 1; z += 0.1)
        {
            float d = 1-sqrt((x * x) + (y * y) + (z * z));
            glColor3f(d, d, d);
            glVertex3f(x, y, z);
        }
    }
}

glEnd();

以及稍后围绕这个云旋转?没有每次都画画?

2 个答案:

答案 0 :(得分:4)

我已经厌倦了这一点,但又来了:

OpenGL不是场景图! OpenGL不维护场景。它是一个绘图API,为您提供绘制到画布上的绘图工具。它绘制点,线和三角形,一旦绘制了一个图元,OpenGL就没有它的回忆。唯一剩下的是帧缓冲区中颜色发生变化的像素。

旧的OpenGL(包括OpenGL-2.1之前)有一个名为“显示列表”的工具,它允许记录绘图命令的“宏”类型。它们有点像“场景”,但它们不是。它们只是一个绘图命令列表。

因此,如果你改变某些东西,只是从观点来看,你必须重新绘制整个东西。

答案 1 :(得分:0)

我找到了解决方案:

预先计算点将它们保存在数组中并渲染整个数组。