您的位置:首页 > 移动开发 > Unity3D

unity 集成 RenderDoc 调试shader的方法

2016-04-20 21:32 169 查看
之前我是知道在
Visual Studio
里调试的方法的,但是不知道为什么,这个方法在unity5的环境下,各种报错,捕获不了,4的时候好好的。今天在翻文档时,发现又多了一种新的调试方法,就是用
RenderDoc
,下面来说说这个工具。

RenderDoc
调试的官方文档:

http://docs.unity3d.com/Manual/RenderDocIntegration.html

Visual Studio
调试的官方文档:

http://docs.unity3d.com/Manual/SL-DebuggingD3D11ShadersWithVS.html

Renderdoc™是一款独立程序,它可以在任何使用Direct3D 11.0 或11.1的Windows应用中捕捉和回放帧,提供工具进行深入分析、图形探察以及API使用的详细检查,这些功能让开发人员在他们的程序中 定位错误和问题。

Renderdoc™由Crytek完全从头开发,就是为了满足图形程序员的真实需求,并在其CRYENGINE引擎的各款游戏制作过程中广泛使用和改进优化。

计划逐步地增加Renderdoc™功能,并且支持其他平台及API (比如OpenGL)。

另外Crytek已经将这个公会开源出来了,也就是说大家可以完全免费的使用它了!

特点:

RenderDoc
可以查看一些 dx函数堆栈调用,纹理信息,像素颜色值,渲染步骤,顶点坐标的详细数值这种信息。挺直观,详细的。但是不能在shader中断点,在这一点上不如
Visual Studio
的调试。

API的支持:



也就是说,这个工具不打算向下兼容所有的API,起点是 dx11。

安装时需要注意的地方:

官方文档里提供一个
RenderDoc
的获取地址,不过这个地址是指向
Github
上c++开源工程的地址,也就是说我们下下来还要自己编译一次,不过这都不是重点。。。。。。

重点是,编译出来的程序,不能集成到unity里面去呀!这个玩意有一个很重要的特性就是可以集成到unity编辑器当中去~

然后我就又去研究文档了(请体谅我悲惨的英文水平,这里省略1万字~),然后重新仔细的看了一遍文档,发现里面是这么说的:

If a RenderDoc installation is detected, then at any time after loading the Editor you can right click on the tab for the Game View or Scene View and click the ‘Load RenderDoc’ option.

第一句是重点,如果检测到
RenderDoc
的安装!然后我发现,我编译出来的工具虽然是能运行的,但是没安装过呀,尼玛!

这里给大家提供一下可以下载编译好,且已经封装制作好了的
.msi
文件下载地址,当然如果你想自己编译好了,再自己给它制作成安装包也可以。。。

地址:

https://renderdoc.org/builds

在列表里选择自己对应的版本就好了。

安装好了以后,你再进入unity的时候,在Scene和Game窗口右键就可以看到多出来一个
Load RenderDoc
选项了(这里我就直接偷官网的图用了)



点一下它,unity就会在后台启动
RenderDoc
,然后界面上会多出一个按钮(这一步操作每次新启动unity,都要来一遍)



是不是很眼熟,没错,就是
RenderDoc
自己的log图标



使用方法:

这里只简单说说在unity中的使用,当然这个工具也是可以用来探测其它程序的dx调用的。

我们在Scene或Game窗口里运行我们的游戏,然后在想进行探测的地方点击那个
log
按钮,然后你发现,好像没发生什么嘛

┑( ̄Д  ̄)┍,我们先不管这个,先来启动
RenderDoc
,这个东西不会在桌面生成快捷方式,我是win10,所以我就直接去问
小娜
了,也就是左下角的
Cortana
搜索窗。(这里必须吐槽,微软这个心机婊,为了宣传win10,连
halo
里的梗都用上了!)

在打开的
RenderDoc
里,我们可以看到这样的画面



这个时候你就应该明白了,咱们点了几次
log
RenderDoc
就给咱们截了几次的屏幕,然后我们打开其中一帧数据,这里要loading一下。然后我们就发现它的
Timeline
Pipeline State
Event Browser
API Calls
Mesh Output
Texture Viewer
窗口里都有数据了,然后我们就可以开始进行调试了。

最后补一个
RenderDoc
的官方使用文档:

http://docs.renderdoc.org/

以上,就是我尝试RenderDoc工具的一些体验了,希望对你有用,我也就没白码这么多字,觉得有用的话,记得给哥点个赞!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: