2017-04-12 8 views
-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の頂点はレンダリングされません

+0

'glGetError()'をチェックしてみてください。それは何と言いますか? – Vallentin

答えて

1

コードで定義されたオルト・マトリックスは、z軸に沿って-1から1までの可視範囲を持っています。他方でz = 5であることは、それが近平面/遠平面の範囲外であることを意味する。

関連する問題