Униформа model
относится к типу mat4
. Вы должны преобразовать координату вершины по матрице в вершинном шейдере:
gl_Position = vec4(0.4 * pos.x + model, 0.4 * pos.y, pos.z, 1.0);
`
gl_Position = model * vec4(0.4 * pos.x, 0.4 * pos.y, pos.z, 1.0);
Вы не получили ошибку, потому чтоесть проблема в addShader
. Ошибки компиляции шейдерного объекта можно получить glGetShaderiv
, а не glGetProgramiv
. Если шейдер успешно скомпилирован, то результатом будет GL_TRUE
, а не GL_FALSE
:
glGetShaderiv(theShader, GL_COMPILE_STATUS, &result);
if (result != GL_TRUE) {
glGetShaderInfoLog(theShader, sizeof(eLog), NULL, eLog);
std::cout << "Error compiling the " << shaderType << ' ' << eLog << '\n';
}
Более того, glm::mat4 model;
дает неинициализированную матрицу. Чтобы получить Identity matrix , вы должны передать один скаляр (1.0) конструктору матрицы:
glm::mat4 model(1.0f);