2013-05-26 67 views
0

它是更多钞票来画静态点云开放-GL的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(); 

后来到例如围绕这个云旋转?没有再次绘制它?

回答

3

我累了这一点,但在这里它又来了:

OpenGL是不是一个场景图! OpenGL不保持场景。这是一个绘图API,它为您提供绘制工具以在画布上绘制。它绘制点,线和三角形,并且一旦绘制了一个图元,OpenGL就不会回想起它。唯一剩下的就是帧缓冲区中颜色改变的像素。

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

所以,如果你改变了一些东西,而只是它的观点,你必须重新绘制整个事情。

0

我发现了一个结构:

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

+2

那么,你的意思是“没有再次绘制它”的意思是找到一种方法来不*计算*每帧的点? – Grimmy