[原] OpenGL ES 学习笔记 (二)

OpenGL ES 2 的渲染流程 实际绘制环境,流程细化
缓存

操做流程:学习

  1. 配置环境:

  a. CAEAGLLayer 替换默认的 CALayer,配置绘制属性;
  b. EAGLContext,即 Render Context ,设置成 OpenGL ES 2 API 环境,并使其成为当前活跃的上下文环境;
  c. Frame Buffers / Render Buffer 的建立和使用,以及内容绑定;
  d. EAGLContext 绑定渲染的窗口 (on-screen),CAEAGLLayer;code

  [注] CAEAGLLayer 继承于 CALayer, 专门用来渲染 OpenGL 、OpenGL ES 内容的图层;若是要使用,则要重写 layerClass 类方法。 在 EAGLContext 绑定 CAEAGLLayer 为渲染窗口以前,能够经过修改 drawableProperties 属性来改变渲染属性。orm

  使用注意:
  a. 修改 opaque 属性为 YES ( CAEAGLLayer.opaque = YES; );
  b. 不要修改 Transform ;
  c. 当横竖屏切换的时候,不要去修改 CAEAGLLayer 的 Transform 而进行 Rotate, 而是要经过 OpenGL / OpenGL ES 来 Rotate 要渲染的内容。对象

  [注] EAGLContext 是 管理 OpenGL ES 渲染上下文(包含,信息的状态、openGL ES 的命令(API)、OpenGL ES 须要绘制的资源)的对象,要使用 OpenGL ES 的 API (命令)就要使该 Context 成为当前活跃的渲染上下文。blog

  1. 初始化数据
    这里主要是考虑是否使用 VBOs ,因为移动端对效率有所要求,因此通常采用 VBOs 快速缓存;继承

  2. 配置 OpenGL ES Shader
    这里的核心工做是 Shader Code ,即学习 GLSL ES 语言;
    iOS 端采用 glsl 后缀的文件来编写代码;资源

  3. 渲染绘制
    这里要注意的是 清空旧缓存、设置窗口,虽然只是一句代码的问题,但仍是很重要的;
    核心是学习 glDraw* 绘制 API ;form

代码流程:class

  1. 配置渲染环境

    1. 配置渲染窗口 [ 继承自 UIView ]

      a. 重写 layerClass 类方法

      + (Class)layerClass {
             return [CAEAGLLayer class];
          }
相关文章
相关标签/搜索