RenderDoc渲染相关调试指南
1091 0
实名

通过了实名认证的内容创造者

发布于 2022-8-3 00:39:54

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 暮苏 于 2022-8-3 00:45 编辑


RenderDoc for Unity
1.安装包:
官方网站:RenderDoc
软件是开源免费的.开源万岁!
暂时无法在文档外展示此内容

2.简述:
具体食用指南:
  • 安装部分:
    • 先安装RenderDoc.确保Unity进程关闭状态下,打开renderdoc安装包,下一步下一步即可.(在这里建议调试的Unity版本应大于Unity2019.之前尝试2018版本似乎一定要Unity版本是Pro/破解版才可以.否则则会在运行renderdoc时卡死.似乎是Unity官方做了什么非付费的屏蔽措施.)
    • 安装成功之后,打开Unity,右键Game面板会有Load RenderDoc的选项.如图:
    image.png


  • 点击之后会让你存储一下当前场景,存储一下.存储完之后观察Game视口会出现RenderDoc的标志:








  • 运行部分:
    • 在抓帧之前,请注意要在调试的shader内加一段关键字
      • 在shader中添加关键字段#pragma enable_d3d11_debug_symbols
        • 加上它的原因是关闭HLSL的编译优化.
        • 下面两张图分别是未加字段和加字段编译后的结果.





未加编译标识字段





加了编译标识字段




  • 单击上面小人(RenderDoc标志)稍等会激活RenderDoc程序.我们拿个角色做举例
  • 抓帧成功会弹出新的窗口:




双击抓取到的帧,便可读取数据如下图:



切换到TextureViewer,通过滑动EID去看它渲染顺序如下图:




找到绘制角色那一帧,如下图:




Unity是以OpenGL窗口为标准,所以在DX显示下会上下颠倒,UE则相反,此时我们可以Flip texture如下图:




此时我们就能去看他的一些相关数据,比如说顶点输入和输出的相关数据:




以及在渲染各阶段都做了哪些,如下图:




或者我们直接定位像素如下图(直接在图上右键就行.注意RenderDoc在渲染中选择像素/片元都是通过右键去选择.)




当点击Debug的时候就会跳转到代码块中就可以通过F10观察右下角数据去逐行Debug.




逐行Debug天下第一!


  • 其他:
    • RenderDoc也可以Debug UE的渲染.
    • RenderDoc也可以连接手机真机调试.(说是调试,你可以扒别人的贴图资源和部分未做混淆的源码)


RenderDoc for UE
还没写





XCode
1.安装包:
XCode只在Mac OS平台发布,所以需要一个mac/黑苹果。
AppStore下载即可。
还有,你需要一个苹果开发者账号或者7天有效的本地证书也行。
2.简述:
  • 当我们要发布IOS相关的应用产品时,XCode是一定绕不开的一个工具。该工具涵盖打包封装,编码,及资源性能检测等功能。我们先简述他在Shader中调试的步骤。
  • Unity官方简述:Unity - Manual: Using the Xcode frame debugger (unity3d.com)
  • 一般情况下我们都是用XCode做真机调试,打包到手机上之后连接手机和电脑通过XCode获取手机内的应用运行数据更准确直观。
具体食用指南:(这里我用真机调试)
1.Unity内相关设置:

Unity环境切换到IOS之后,在Player Setting中找到Target SDK(真机测试保持默认Device SDK即可,模拟器测试切换成Simulator SDK)注意:Simulator SDK打出来的包是没办法发布的。

Unity2019中Target SDK是在Other setting分卷下,老版本的话,位置不在这。但是也在player setting中。

模拟器作为简单观测还行,但是要涉及到Proflie就还是真机最好。



Unity内打包我就跳过了。

2.XCode相关步骤:

打开XCode加载刚才Unity打包出来的文件如下图:





打开之后配置一下证书,如下图,如果没有开发者账号,申请个开发者证书就好了(有时效性)





配置完证书文件,先连接下ios设备,确保连接上之后直接直接运行就好,等他编译。








编译完成之后手机上会自动安装上你打的包,如果是证书用户记得去手机设置-通用-描述文件,信任一下你自己的证书然后再重新运行一下找到如下界面(这里仅作shader相关调试,其他调试之后补充





如果点了抓帧(就是上图那个小摄像机)就会出现如下界面:





左边是渲染队列,中间是对应里面数据及大小,下面是当前帧内数据。





同样也可以在像素层面debug,如下图:





然后就会跳转到对应的代码块查看具体变量编译后的结果。





愉快的debug就开始了!







3.题外话:

XCode内置的Profile比Unity强大很多很多,所以后期要做检查及优化,至少在IOS层面上就不用选择XCode以外的工具了。















还没有设置签名!您可以在此展示你的链接,或者个人主页!
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表