У меня возникают проблемы с загрузкой текстуры в VRAM. Я использую OpenGL в Mac OS X. У меня есть геометрия, которую я успешно обработчик, передавая цвет в свой шейдер фрагмента. Однако, как только я пытаюсь загрузить текстуру, геометрия не получается, и я могу видеть только цвет фона. Вот моя текстура загрузки код:Усугубление проблемы с OpenGL Texture
char imageData[27] = {
127, 127, 127,
127, 127, 127,
127, 127, 127,
127, 127, 127,
127, 127, 127,
127, 127, 127,
127, 127, 127,
127, 127, 127,
127, 127, 127,
};
glActiveTexture(GL_TEXTURE0);
GLuint textureID;
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 3, 3, 0, GL_RGB, GL_UNSIGNED_BYTE, imageData);
GLint uniform_location = glGetUniformLocation(bundle->GetShaderProgramID(), "texture");
std::cout << uniform_location <<std::endl;
glUniform1i(uniform_location, 0);
glEnable(GL_TEXTURE_2D);
А вот мой фрагмент кода шейдера:
uniform sampler2D texture;
void main()
{
vec2 coord = vec2(0.5, 0.5);
//gl_FragColor = vec4(coord, 0.0, 1.0);
gl_FragColor = vec4(texture2D(texture, coord).rgb, 1.0);
}
Я понимаю, что некоторые из этого кода, вероятно, не является необходимым, но я пытался все, что я могу думать ,
Спасибо.
BTW, всегда проверяйте ошибки с помощью glGetError. Если у вас есть ошибка, рендеринг может исчезнуть. – alxx