我在使用uniform in到顶点着色器时从c ++传递一个浮点数时遇到了问题。这个浮动只是为了不断增加自己。
在我的标题中我有
float pauto;
void pautoupdate(int program);
现在在我的cpp
中void World::pautoupdate(int program)
{
pauto += 0.1f;
glUniform1f(glGetUniformLocation(program, "pauto"), pauto);
}
在我的顶点着色器中,它被声明为,它只是递增x值
uniform float pauto;
terrx = Position.x;
terrx += pauto;
从这里起,我没有得到任何结果这样做,我不确定我是否错误地指向它或什么。
答案 0 :(得分:2)
尝试以下方法:
如果您想在各种情况下快速测试和设置着色器,可以使用多种工具来帮助您。在线,有ShaderToy(http://www.shadertoy.com)。离线,让我推荐一个我开发的,Tao3D(http://tao3d.sf.net)。
答案 1 :(得分:0)
应在glUseProgram(程序)和glUseProgram(0)之间应用GlUniform *:
1.使用着色器
2.设置制服
3.Render的东西
4.移除着色器
这是因为OpenGL必须知道你发送制服的女巫节目。