OpenGL ES Frame Debugger 使用 (1)

概述

因爲以前的 SnapShow 的項目,大量的接觸了OpenGL ES,而後發現其調試很是的困難。
以前我用過蘋果Grhapic Tools套件裏的OpenGL Shader Builder,算是能夠勉強可以看到OpenGL 繪製的結果,可是離一個真正意義上的調試工具還差的太遠。html

固然隨着這幾年iOS的快速發展,Xcode也是突飛猛進,咱們能夠看到蘋果在這裏的不斷努力。
在Xcode4.2 以後,apple加入了OpenGL ES Frame Capture。
在Xcode5.0 以後,apple加入了一個新的調試openGL的工具,OpenGL ES Frame Debugger,查閱過文檔以後才知道怎麼去使用它。ios

OpenGL ES Frame Debugger使用條件

使用它必須知足條件:
支持OpenGL ES 3.0 的API的設備才能使用OpenGL ES frame debugger
而後目前支持OGL ES 3.0 的設備只有segmentfault

  • iPhone 5S
  • iPad Air
  • iPad Mini with Retina ( iPad Mini 2)

雖說必需要與OpenGL ES 3.0的API兼容,可是EAGLContext使用的版本不須要是3.0,2.0就能夠了api

OpenGL ES Frame Debugger 特性

而後這個工具支持的幾個特性:xcode

  1. 檢查OpenGL ES 狀態信息 [xcode4.2]
  2. 對texture,shader等等進行自省
  3. 單步執行看每一個繪畫調用執行的結果
  4. 單步執行前,能夠看到這個圖像建立的情況
  5. 新的自動變量顯示視圖,會自動展現OpenGL ES的狀態以及當前OpenGL ES命令所關聯的對象 [xcode5.0]
  6. 當前上下文裏的問題偵查。
  7. 新的OpenGL ES 斷點支持

而後咱們來逐個看這些工具怎麼使用app

使用

首先點開Debug,選擇 Capture OpenGL ES Frame
請輸入圖片描述工具

咱們能夠看到整個Debug界面會變成
請輸入圖片描述ui

而後來看看各個模塊
經過切換標籤,咱們能夠將下面的標籤切換到GL Contextspa

GL Context

請輸入圖片描述

Bound GL Objects

請輸入圖片描述
這個還能夠從Assistant Editor裏面看到Bound GL Objects,更加直觀
請輸入圖片描述debug

ALL GL Objects

請輸入圖片描述

Context Info

請輸入圖片描述

Shader Debug

而後很是重要的一個功能就是實時的調試Program Shader
雙擊下面的圖標
請輸入圖片描述
咱們能夠看到這樣的界面
請輸入圖片描述
而後你就能夠實時的改寫這個fragment shader,而後點左下角的刷新按鈕,能夠在預覽界面裏面當即看到renderBuffer的變化。

好比我準備改一下上面的fragment shader,
改寫以前renderbuffer的預覽以下:
請輸入圖片描述

如今我將shader改寫爲:

varying lowp vec4 colorVarying;

void main()
{
    gl_FragColor = mix(vec4(1.0, 1.0, 0.0, 1.0), colorVarying, 0.3);
}

而後咱們就能夠看到預覽就變爲
請輸入圖片描述

OK
第一篇就到此爲止,其餘我繼續摸索

引用:

  1. Xcode new feature,OpenGLES support
相關文章
相關標籤/搜索