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
相关文章
相关标签/搜索