-1
int main() {
using namespace game1;
using namespace graphics;
using namespace maths;
using namespace util;
using namespace std;
Window window("Game 1", 960, 540);
glClearColor(0.2f, 0.3f, 0.8f, 1.0f);
GLfloat vertices[] = {
4, 3, 5,
12, 3, 5,
4, 6, 5,
4, 6, 5,
12, 6, 5,
4, 3, 5
};
Matrix4f ortho = Matrix4f::genOrtho(0.0f, 16.0f, 0.0f, 9.0f, -1, 1);
GLuint vbo;
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(0);
ShaderProgram s;
s.attachShader(File("res/testVert.vert"), GL_VERTEX_SHADER);
s.attachShader(File("res/testFrag.frag"), GL_FRAGMENT_SHADER);
s.link();
s.enable();
s.setUniformMat4f("model", Matrix4f::identity());
s.setUniformMat4f("world", Matrix4f::identity());
s.setUniformMat4f("proj", ortho);
while (!window.closed())
{
window.clear();
glDrawArrays(GL_TRIANGLES, 0, 3);
window.update();
}
return 0;
}
私はOpenGLにはかなり新しく、私は何が間違っているのか分かりません。私はそれがvboやvertexAttribArrayPointerと何か関係があると思うし、たくさんのことをテストしましたが、何が間違っているのかわかりません。これは通常の3つの頂点三角形で動作し、私のエラーはメインのどこかにあると確信していますOpenGLの頂点はレンダリングされません
'glGetError()'をチェックしてみてください。それは何と言いますか? – Vallentin