Witam,
mój problem polega na tym, że gdy chcę stworzyć macierz projekcji, to ze sceny znika model.
Korzystam z biblioteki do obliczeń glm.
Tak wygląda funkcja rysująca:
glClearColor(0.0f, 0.0f, 1.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
GLfloat vertices [] = {
0.0f, 0.5f,
-0.5f, -0.5f,
0.5f, -0.5f
};
GLfloat colors [] = {
1.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 1.0f
};
glm::mat4 Model(1.0f);
glm::mat4 Projection(1.0f);
Projection *= glm::perspective(60.0f, 768.0f / 512.0f, 0.01f, 100.0f);
glm::mat4 MVP = Projection * Model;
glUniformMatrix4fv(gUniMatrix, 1, GL_FALSE, glm::value_ptr(MVP));
glVertexAttribPointer(gPosAttr, 2, GL_FLOAT, GL_FALSE, 0, vertices);
glVertexAttribPointer(gColAttr, 3, GL_FLOAT, GL_FALSE, 0, colors);
glEnableVertexAttribArray(0);
glEnableVertexAttribArray(1);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableVertexAttribArray(1);
glDisableVertexAttribArray(0);
A tak wyglądają shadery:
attribute vec4 posAttr;
attribute vec4 colAttr;
varying vec4 col;
uniform mat4 matrix;
void main() {
col = colAttr;
gl_Position = matrix * posAttr;
};
varying vec4 col;
void main() {
gl_FragColor = col;
};
Jeżeli do shadera wyślę jedynie macierz Model, wtedy obiekt na scenie jest wyświetlany normalnie.
W czym leży problem? Z góry dziękuje za pomoc.