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的都清除此处再也不解释。

相关文章
相关标签/搜索