OpenGL 显示列表块 glEnable(GL_COLOR_MATERIAL)
Posted
技术标签:
【中文标题】OpenGL 显示列表块 glEnable(GL_COLOR_MATERIAL)【英文标题】:OpenGL Display list blocks glEnable(GL_COLOR_MATERIAL) 【发布时间】:2014-06-06 17:35:32 【问题描述】:我有以下代码:
glDisable(GL_COLOR_MATERIAL);
cout<<(int)glIsEnabled(GL_COLOR_MATERIAL)<<endl;
glEnable(GL_COLOR_MATERIAL);
cout<<(int)glIsEnabled(GL_COLOR_MATERIAL)<<endl;
modelDL[t] = glGenLists(1);
glNewList(modelDL[t],GL_COMPILE);
glDisable(GL_COLOR_MATERIAL);
cout<<(int)glIsEnabled(GL_COLOR_MATERIAL)<<endl;
glEnable(GL_COLOR_MATERIAL);
cout<<(int)glIsEnabled(GL_COLOR_MATERIAL)<<endl;
显示列表中间的两行似乎阻塞了glDisable和glEnable。这段代码的输出是:
0
1
1
1
应该是这样的
0
1
0
1
如果删除显示列表的 2 行,则输出正常。如何将 glEnable 和 glDisable 与显示列表一起使用?
【问题讨论】:
【参考方案1】:如果您想在构建显示列表时查看其副作用,请使用GL_COMPILE_AND_EXECUTE
。
【讨论】:
【参考方案2】:我觉得没问题:第二个glDisable和glEnable写入列表,待列表显示后执行。
将其放入列表中,不会立即改变状态。
【讨论】:
以上是关于OpenGL 显示列表块 glEnable(GL_COLOR_MATERIAL)的主要内容,如果未能解决你的问题,请参考以下文章
应该是每个纹理单元应用glEnable(GL_TEXTURE_2D)
openGL之API学习(二零零)GL_TEXTURE_GEN_S GL_TEXTURE_GEN_T GL_TEXTURE_GEN_R GL_TEXTURE_GEN_Q