Xcode 調試OpenGL shader 步驟詳解

iOS Xcode 調試OpenGL shader 步驟詳解測試

注意Apple的官方文檔詳細的描述了要使用GPU Frame Capture功能,必須使用EAGLContext做爲上下文,並且要使用CAEAGLLayer或者GLKView,同時還要保證使用定時器等,去循環調用3d

[_context presentRenderbuffer:GL_RENDERBUFFER];//方法調試

不然不能使用GPU Frame Capture功能。code

當不能使用GPU Frame Capture功能時,此按鈕是灰色不可點擊狀態blog

 

下面介紹調試步驟:文檔

首先設置Options裏面的GPU Frame Capture爲OpenGL ES默認爲Automatically Enabled默認設置其實也能夠調試,可是此處爲了過程更符合OpenGL ES的流程,此處設置爲OpenGL ES。io

而後運行程序變量

 

運行過程當中點擊Capture按鈕捕獲一幀OpenGL ES數據。捕獲過程較慢。渲染

捕獲完畢以後:循環

可是到目前並不能看到shader的內容,已經shader內的變量的值,調試shader變量的值纔是咱們的目的。

在選擇All GPU Objects -> All 以後調試shader的界面就出現了調試OpenGL ES shader的界面爲:

此處若是想一邊查看frameBuffer一邊調試OpenGL ES shader能夠這樣操做:

界面變爲:

 

下面打開frameBuffer界面:

點擊後咱們想要的界面就出現了一邊爲frameBuffer界面一邊爲調試OpenGL ES shader的界面

下面查看OpenGL ES在渲染此幀時shader內的各個變量值是多少

此處以查看shader的變量的值爲示例,雙擊Vertex Array Objective #0 

shader 內的變量的值爲:

使用的shader爲:

異常爲:

此異常是爲了測試調試信息故意這樣寫的,去掉此處的異常只須要將GLfloat jeffasdColors[]改成:

//GLfloat jeffasdColors[]  = { 1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f };

至於緣由估計屬性OpenGL ES的都清除此處再也不解釋。

相關文章
相關標籤/搜索