我有一个关键功能/事件允许用户减少“numParticles”
glDrawArrays( GL_POINTS, 0, numParticles );
但更改此变量只会改变正在绘制的点数
所以我必须修改原始的“顶点”数组?
现在,我添加了
glClear(GL_COLOR_BUFFER_BIT);
我现在可以看到点数正在变化。
但是在将“numParticles”减少到零之后,屏幕上还剩下一些点?
它似乎也没有影响着色器更新的点?
答案 0 :(得分:0)
标题中有错误:
static int numParticles = 50000;
这将为每个对象(文件)创建局部变量,然后对象draw.o将拥有自己的变量,其中ogl2particle.o不会更改。 相反,你应该使用:
extern int numParticles = 50000;
在任何文件中,只有一个文件:
int numParticles = 50000;
的c中读取全局变量中的某些内容