初学者关于OpenGL 的问题

ibmc490365333 2014-09-20 12:44:12
#include <GL/gl.h>
#include <GL/freeglut.h>
void display();

int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(512, 512);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutMainLoop();
}

void display(){
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);

GLuint array;
glGenVertexArrays(1, &array);
glBindVertexArray(array);

GLfloat vertex_data[3][3] = {{-1.0, -1.0, 0.0}, {1.0, -1.0, 0.0}, {0.0, 1.0, 0.0}};


GLuint buffer;
buffer=glGenBuffers(1, &buffer);
glBindBuffer(GL_ARRAY_BUFFER, buffer);
glBufferData(GL_ARRAY_BUFFER, vertex_data, GL_STATIC_DRAW);

GLuint VertexShader = glCreateShader(GL_VERTEX_SHADER);
GLuint FragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
char * VertexShaderCode = "#version 120\nvoid main(){gl_Position = vec4(vertexPosition, 1.0);}\n";
char * FragmentShaderCode = "#version 120\nvoid main(){gl_FragColor = vec4(1,0,0,1);}\n";
glShaderSource(VertexShader, 1, &VertexShaderCode, NULL);
glShaderSource(FragmentShader, 1, &FragmentShaderCode, NULL);
glCompileShader(VertexShader);
glCompileShader(FragmentShader);
GLuint Program=glCreateProgram();
glAttachShader(Program, VertexShader);
glAttachShader(Program, FragmentShader);
glLinkProgram(Program);
glUseProgram(Program);

GLuint vertexattrpos = glGetAttribLocation(Program, "vertexPosition");
glEnableVertexAttribArray(vertexattrpos);
glVertexAttribPointer(vertexattrpos, 3, GL_FLOAT, GL_FALSE, 0, (void *)0);

glDrawArrays(GL_TRIANGLES, 0, 3);
glFinish();
}


看了http://www.opengl-tutorial.org/zh-hans/beginners-tutorials-zh/tutorial-2-the-first-triangle-zh/的教程,想用freeglut窗口系统,自己用OpenGL画一个三角形,但是
gcc test.c -lGL -lglut -o test
./test


运行之后就是一个全黑的窗口,没有看见红色的三角形,为什么?这个代码哪里错了?希望能讲的详细一些,我刚开始学。
...全文
156 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-09-22
  • 打赏
  • 举报
回复
搜网络教程“学OpenGL编3D游戏”。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧