蔭試圖寫一個小OpenGL圖像只使用頂點緩衝對象畫出一個三角形(不使用VAO)秒,但每當我想編譯它,那隻能說明一個藍色屏幕OpenGL繪圖與VBO
這裏是我的代碼
#include <iostream>
#include <GLUT/glut.h>
#include <OpenGL/gl3.h>
GLuint VBO;
GLuint VAO;
void display();
float vertex[] = {-1.0, 0.0 , 0.0,
0.0 , 1.0 , 0.0 ,
1.0 , 0.0 , 0.0 };
int main (int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutInitWindowSize(1000, 400);
glutInitWindowPosition(100, 100);
glutCreateWindow("My First GLUT/OpenGL Window");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
void display()
{
glClearColor(0, 0, 1,1);
glClear(GL_COLOR_BUFFER_BIT);
glGenBuffers(1,&VBO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER,9 *sizeof(vertex),vertex, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3,GL_FLOAT, GL_TRUE, 0, 0);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableVertexAttribArray(0);
glutSwapBuffers();
};
你的着色器在哪裏?另外,爲什麼你不使用'glVertexPointer()'? – genpfault
Iam新的Opengl編程&我想探索用opengl繪製不同的方式,所以下面的一些在線教程(這並沒有涵蓋程序的每一點)我想出了這個代碼,但我知道我們應該提供我們的着色器程序.. – BulBul