OpenGL入门(二):绘制一个点
2016-06-24 11:34
453 查看
GLuint vbo;//存储顶点缓冲区句柄 static void renderSenceCB(){ glClear(GL_COLOR_BUFFER_BIT);//使用设置的清除缓存帧颜色清除帧 glEnableVertexAttribArray(0);//启用每个顶点属性的索引(这一节中我们还没使用任何 Shader,但是我们加载到缓冲器的顶点位置属性在固定函数管线(在没有绑定着色器的时候就自动启用固定管线)中被看做顶点属性索引为0。你必须启用所有的顶点属性,否则管线将接收不到数据) glBindBuffer(GL_ARRAY_BUFFER, vbo);//绑定缓冲区 glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);//管线如何在缓冲区内部解释数据,第一个参数指定索引,第二个参数构成属性的分量个数(X,Y,Z共3个)第三个参数指定每个分量的数据类型 第四个指定在管线使用前是否与要规范化 第五个参数表示两个相同属性的间隔(步长) 第六个参数缓存区中存储数据的偏移值 glDrawArrays(GL_POINTS, 0, 1);//绘制 第一个参数:绘制类型为gl_points 画点,第二个参数 第一个顶点的索引值 第三个参数 画点个数, glDisableVertexAttribArray(0);//当不需要使用顶点时 禁用顶点 glutSwapBuffers(); } static void initializeGlutCallback(){ glutDisplayFunc(renderSenceCB); } static void createVertexBuffer(){ Vector3f vector3f[1] ={Vector3f(0.0f,0.0f,0.0f)}; glGenBuffers(1, &vbo);//创建buffer 1:表示数量 &vbo glBindBuffer(GL_ARRAY_BUFFER, vbo);//绑定buffer到指定目标 指定vbox存储内容 glBufferData(GL_ARRAY_BUFFER, sizeof(vector3f), vector3f, GL_STATIC_DRAW);//填充buffer数据 gl_static_draw/gl_dynamic_draw 指定画的方式 } int main(int argc,char *argv[]){ glutInit(&argc, argv);//初始化glut glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);//显示模式:双缓存 rgba模式 glutInitWindowSize(640, 480);//窗口大小 glutInitWindowPosition((GLUT_SCREEN_WIDTH-GLUT_WINDOW_WIDTH)/2,(GLUT_SCREEN_HEIGHT-GLUT_WINDOW_WIDTH)/2);//窗口位置 glutCreateWindow("Draw a Point");//窗口名称 initializeGlutCallback();//窗体回调 GLenum res = glewInit();//初始化glew if(res!=GLEW_OK){ cerr<<"init glew error, error:"<<glewGetErrorString(res)<<endl;//打印glew 初始化错误 return 1; } glClearColor(0.0f, 0.0f, 0.0f, 0.0f);//设置清除缓存帧颜色 //////////////////// createVertexBuffer();//创建顶点buffer //////////////////// glutMainLoop();//开启glut内部循环 }
相关文章推荐
- 解决Vista系统OpenGL驱动问题的方法整理
- Delphi下OpenGL2d绘图之画四边形的方法
- Delphi下OpenGL2d绘图之画点的方法
- Delphi下OpenGL2d绘图之初始化流程详解
- Delphi使用OpenGL2d绘图之画图片Bmp的方法
- 通过OpenGL ES混合模式缩放视频缓冲区来适应显示尺寸
- VC运用OPENGL加载BMP纹理图的实现方法汇总
- java实现OpenGL ES纹理映射的方法
- java基于OpenGL ES实现渲染实例
- android调用GLES20.glGenerateMipmap报错glError 1280
- OpenGL坐标系介绍
- 【翻译】安卓opengl ES教程之四——添加颜色
- linux下opengl的安装(with qt)
- OpenGL超级宝典笔记——显示列表
- OpenGL超级宝典笔记——顶点数组
- OpenGL生成轮廓
- OpenGL超级宝典笔记——性能比较
- OpenGL超级宝典笔记——顶点缓冲区对象
- OpenGL超级宝典笔记——选择
- OpenGL超级宝典笔记——反馈