我试图在屏幕上显示的方块上添加纹理,但在完成所有代码后,方块仍为白色,我无法弄清楚是什么错误,我想在加载纹理后我可能会遗漏一些东西。
这是我用来创建纹理的代码:
m
在着色器编译
之前,我在顶点和索引缓冲区数据之后调用此函数这是我的顶点和片段着色器代码:
void textureManager::createTexture(const char* fileName) {
GLuint textureID = SOIL_load_OGL_texture(fileName, SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y);
if (0 == textureID) {
cout << "error" << endl;
}
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
}
有人可以帮助我吗
答案 0 :(得分:0)
你的着色器看起来很好。你也在制作GLuint id。嗯,你是否将它发送到你的画中画中的着色器?
看起来应该是这样的:
glBindTexture(GL_TEXTURE_2D, textureID); //texture uniform
并在最终抽奖前填写vbos时调用。