0

是否可以在 Open-GL 中绘制静态点云

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

然后再围绕这个云旋转?不用每次都画一遍?

4

2 回答 2

4

我对此感到厌倦,但又来了:

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

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

所以如果你改变了一些东西,而且仅仅是观点,你必须重新绘制整个东西。

于 2013-05-26T17:12:39.173 回答
0

我找到了一个解决方案:

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

于 2013-05-26T17:26:46.893 回答