OPENGL ES 3.0编程指南 原书第2版 中文版 笔记1
OpenGL ES 3.0 是移动设备和嵌入式系统上用于图形渲染的开放标准,它在OpenGL的基础上进行了优化,特别适合资源有限的环境。在iOS平台上,通常与EAGLContext一起使用,来构建和管理OpenGL ES上下文。以下是基于OpenGL ES 3.0编程的一些关键知识点: 1. **EAGLContext初始化**: 在iOS应用中,首先需要创建一个`EAGLContext`对象,指定渲染API为`kEAGLRenderingAPIOpenGLES3`,以使用OpenGL ES 3.0。然后将这个上下文设置到`GLKView`的`context`属性,这样可以在视图上进行OpenGL渲染。 2. **创建窗口**: 使用`esCreateWindow`函数创建一个OpenGL ES窗口,参数包括上下文、窗口名称、宽度、高度和颜色格式。这里使用了ES_WINDOW_RGB表示使用RGB颜色格式。 3. **编译和加载着色器**: OpenGL ES程序由着色器(顶点着色器和片段着色器)组成。首先调用`glCreateShader`创建着色器对象,然后使用`glShaderSource`加载源代码,接着`glCompileShader`编译着色器。通过`glGetShaderiv`检查编译状态,确保着色器正确编译。 4. **创建和链接程序**: `glCreateProgram`创建一个空的程序对象,`glAttachShader`将编译好的着色器附加到该程序,`glLinkProgram`链接这些着色器。链接后,可以使用`glGetProgramiv`检查链接状态。 5. **绘制过程**: 在`Draw`函数中,设置视口大小使用`glViewport`,清除颜色缓冲区用`glClear`,指定清除颜色用`glClearColor`。然后,使用`glUseProgram`激活程序对象,`glVertexAttribPointer`设置顶点属性数据,`glDrawArrays`绘制图元。 6. **EGL接口**: 在非Apple平台,EGL作为窗口系统接口使用。`eglGetDisplay`获取默认显示,`eglInitialize`初始化EGL,`eglGetConfigs`和`eglChooseConfig`分别用于获取和选择配置,`eglCreateWindowSurface`创建EGL窗口,`eglCreateContext`创建渲染上下文,`eglMakeCurrent`设置当前上下文。 7. **着色器处理**: 创建着色器对象`glCreateShader`,提供源代码`glShaderSource`,编译`glCompileShader`,检查编译状态`glGetShaderiv`,并使用`glGetShaderInfoLog`获取编译日志。 8. **程序执行**: 在每个帧开始,`glClear`清除颜色缓冲区,`glUseProgram`激活程序,`glVertexAttribPointer`设置顶点数据,最后`glDrawArrays`绘制三角形。 以上就是OpenGL ES 3.0编程的基本流程,涉及EAGLContext、窗口创建、着色器编译和链接、绘图操作以及EGL接口的使用。在实际开发中,还需要考虑错误处理、资源管理、性能优化等方面的内容。
剩余9页未读,继续阅读
- 粉丝: 735
- 资源: 296
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助