设为首页 加入收藏

TOP

GLSL变换颜色的三角形(C语言)(二)
2014-11-23 18:02:55 来源: 作者: 【 】 浏览:31
Tags:GLSL 变换 颜色 三角形 语言
//////////////////////////////// programHandle =glCreateProgram(); glAttachShader(programHandle, vShader); glAttachShader(programHandle, fShader); glLinkProgram(programHandle); glGetProgramiv(programHandle, GL_INFO_LOG_LENGTH, &infoLogLength); if(infoLogLength >0) { infoLog =(char *)malloc(infoLogLength); glGetProgramInfoLog(programHandle, infoLogLength, &charWritten, infoLog); printf(%s , infoLog); printf(************************************************************************** ); free(infoLog); } glUseProgram(programHandle); } ///////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// void InitVBO() { glGenBuffers(2, vboHandles); positionBufferHandle =vboHandles[0]; //colorBufferHandle =vboHandles[1]; ////////////////////////////////////// glBindBuffer(GL_ARRAY_BUFFER, positionBufferHandle); glBufferData(GL_ARRAY_BUFFER, sizeof(positionData), positionData,GL_STATIC_DRAW); //glBindBuffer(GL_ARRAY_BUFFER, colorBufferHandle); //glBufferData(GL_ARRAY_BUFFER, sizeof(colorData), colorData, GL_STATIC_DRAW); ////////////////////////////////////////// glGenVertexArrays(1, &vaoHandle); glBindVertexArray(vaoHandle); ///////////////////////////////////////////// glEnableVertexAttribArray(0); //glEnableVertexAttribArray(1); /////////////////////////////////// glBindBuffer(GL_ARRAY_BUFFER, positionBufferHandle); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, NULL); //glBindBuffer(GL_ARRAY_BUFFER, colorBufferHandle); //glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, NULL); } ///////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////// void SetupRC() { glewInit(); SetupShader(); InitVBO(); glClearColor(1.0, 0.0, 0.0, 1.0); } ///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// void RenderScene() { glClear(GL_COLOR_BUFFER_BIT ); glBindVertexArray(vaoHandle); glDrawArrays(GL_TRIANGLES, 0, 3); glBindVertexArray(0); elapseTimeUniformLocation =glGetUniformLocation(programHandle, time); fragLoopDurationLocation =glGetUniformLocation(programHandle,fragLoopDuration); loopDurationLocation =glGetUniformLocation(programHandle, loopDuration); //printf(%d %d ,elapseTimeUniformLocation, loopDurationLocation); glUniform1f(loopDurationLocation, 5.0f); glUniform1f(fragLoopDurationLocation, 10.0f); glUniform1f(elapseTimeUniformLocation, glutGet(GLUT_ELAPSED_TIME)/1000.0f ); glutSwapBuffers(); glutPostRedisplay(); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(800, 600); glutInitWindowPosition(0,0); glutCreateWindow(second triangle:active!); SetupRC(); glutDisplayFunc(RenderScene); glutMainLoop(); return 0; }
 
 
 
 

triangle.vert

#version 400


layout(location =0) in vec3 vertexPosition;

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇object-c基本知识 下一篇C语言函数返回值不能直接写数组

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: