[原] 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];
          }
相關文章
相關標籤/搜索