然后通过以下代码得到着色器中得到Uniform缓冲的引用,只需要获取一次即可,不需要再另一套着色器中继续获取。
uniformBufferindex=glGetUniformBlockIndex(mProgram, "myColor");//得到Uniform缓冲的引用
最后通过以下代码将数据送入Uniform缓冲
glUniformBlockBinding(mProgram, uniformBufferindex, 0);//设置绑定点为0
glBindBufferBase(GL_UNIFORM_BUFFER, 0, MyGLThread::uboExampleBlock);//绑定Uniform缓冲对象到对应的绑定点上
glBindBuffer(GL_UNIFORM_BUFFER, MyGLThread::uboExampleBlock);//绑定Uniform缓冲
float colorArray[8]={
1.0f,0.0f,0.0f,1.0f,
0.0f,1.0f,0.0f,1.0f
};
glBufferSubData(GL_UNIFORM_BUFFER, 0, 32, &colorArray);
glBindBuffer(GL_UNIFORM_BUFFER, 0);
我贴出来的只是部分代码,建议各位朋友们自习研读LearnOpenGL章节中的代码,当然阅读我的案例中的也是可以的。关于Uniform缓冲的内容还是比较重要的。各位朋友们如果发现什么问题和不合理的地方请多多指出,我会虚心接受每一个建议,大家共同进步。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-61852-3.html
可采取撞击战术对付美军舰的风声起了作用
年年换中国豆苗大学生