Unity3D Shader之路 VS2015下Graphics Debugger调试Shader

版本:unity 5.4.1  语言:Unity Shader

 

首先推荐一下candycat的《Unity Shader入门精要》,渲染流水线讲得清清楚楚、有用的数学知识一个没落,基于这两点再来看Shader代码简直简单的不像人话。总之吐血推荐,想学Shader就买这本书好了。

 

然后这本书里面讲到了使用Visual Studio调试Shader,但没有说到具体的方法,我就来按照Unity官方文档来补充一下。

 

官方网址:

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

 

首先申明调试环境只能使用win64,使用DirectX 11,然后跟着我一步步做吧。

 

1.Shader代码中添加以下预处理命令,跟其他的#pragma放在一起就好:

#pragma enable_d3d11_debug_symbols

 

完成之后保存,并出包,要求是64位包:

Unity3D Shader之路 VS2015下Graphics Debugger调试Shader_第1张图片


2.接下来是运行VS2015,注意不是从Unity中启动,Unity现在可以关掉了,直接运行VS2015程序,点File -> New -> Project新建项目,新建个VC++的Empty Project就好:

Unity3D Shader之路 VS2015下Graphics Debugger调试Shader_第2张图片


3.Debug -> (项目名) Properties打开属性界面,在点到属性界面的Configuration Properties -> Debugging:

Unity3D Shader之路 VS2015下Graphics Debugger调试Shader_第3张图片


我们要调整的是Command行和Command Arguments行,Command行写刚刚出包的绝对路径,而另一个则是-force-d3d11,强制使用d3d11渲染程序。

 

4.配置完毕之后,点Debug -> Graphics -> Start Graphics Debugging,接下来我们的出包程序就直接运行了,我是这么一个测试画面:

Unity3D Shader之路 VS2015下Graphics Debugger调试Shader_第4张图片


5.回到VS2015,点Capture Frame截取画面(时间可能有点长。好吧,我在它截取的过程中又写了这么一大段话。还没有结束,电脑好一点的可能快一点吧。某种意义上来说这样的调试还是蛮麻烦的,因为你得出包之后再进行调试,想改个参数什么的,得重新出包,但拥有这样逐行代码调试的能力简直赞):

Unity3D Shader之路 VS2015下Graphics Debugger调试Shader_第5张图片


我发现为什么要这么长时间来截取画面了,得点一下调试的程序,让它进行渲染,不点的话画面停在那里所以截取画面程序一直在等待。或者就开后台运行应该也行。

 

6.好,获取到以上画面之后点一下Frame 822这行字,出现了详细的报告,我在图片中选取了自己渲染的小球,想看看他是怎么渲染出来的:

Unity3D Shader之路 VS2015下Graphics Debugger调试Shader_第6张图片


点中后,右边窗口出现了详细信息:

Unity3D Shader之路 VS2015下Graphics Debugger调试Shader_第7张图片


7.点开棕色的那次渲染,就能看到我们写的Shader了,点三角运行就能进行调试了:

Unity3D Shader之路 VS2015下Graphics Debugger调试Shader_第8张图片


以上内容就是Unity官方教程中的内容,网上搜了一下貌似没有相关的介绍,如果在学Shader的话最好按照以上操作来试一试,很强大的功能。


你可能感兴趣的:(Shader之路,unity,调试,visual,studio,VS2015,Shader)