glDrawArrays,动态地改变被绘制的点数?

时间:2011-04-11 08:45:07

标签: opengl

我有一个关键功能/事件允许用户减少“numParticles”

   glDrawArrays( GL_POINTS, 0, numParticles );

但更改此变量只会改变正在绘制的点数

所以我必须修改原始的“顶点”数组?

现在,我添加了

glClear(GL_COLOR_BUFFER_BIT);

我现在可以看到点数正在变化。

但是在将“numParticles”减少到零之后,屏幕上还剩下一些点?

它似乎也没有影响着色器更新的点?

Code

1 个答案:

答案 0 :(得分:0)

标题中有错误:

static int numParticles = 50000;

这将为每个对象(文件)创建局部变量,然后对象draw.o将拥有自己的变量,其中ogl2particle.o不会更改。 相反,你应该使用:

extern int numParticles = 50000;

在任何文件中,只有一个文件:

int numParticles = 50000;

您可以在http://en.wikipedia.org/wiki/External_variable

的c中读取全局变量中的某些内容
相关问题