[原] 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;

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

  使用注意:
  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 成为当前活跃的渲染上下文。

  1. 初始化数据
    这里主要是考虑是否使用 VBOs ,由于移动端对效率有所要求,所以一般采用 VBOs 快速缓存;

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

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

代码流程:

  1. 配置渲染环境

    1. 配置渲染窗口 [ 继承自 UIView ]
      a. 重写 layerClass 类方法

          + (Class)layerClass {
             return [CAEAGLLayer class];
          } 
      
posted @ 2018-06-06 19:53  超级大熊  阅读(478)  评论(0编辑  收藏  举报