问题
在《学习使用RenderDoc查看着色器代码》我学习了如何使用RenderDoc查看shader代码。
在《在UE4中使用RenderDoc》中我学习了如何在UE4中使用RenderDoc。
不过有个问题是,如果我直接在UE中截帧尝试看shader代码,看到的是不具有可读性的汇编指令:
本篇的目标是尝试解决这个问题。
必要操作:r.Shaders.Optimize 和 r.Shaders.KeepDebugInfo
通过查阅《UE4中使用RenderDoc截帧 - 可可西 - 博客园》资料,发现这个问题相关的两个关键控制台变量是r.Shaders.Optimize
和r.Shaders.KeepDebugInfo
。
需要的值是:
r.Shaders.Optimize=0
r.Shaders.KeepDebugInfo=1
这两个控制台变量在编辑器运行时可以查询到,默认情况下的值刚好相反,而且不能在编辑器内修改。
要想修改,就要在\Engine\Config\ConsoleVariables.ini中修改。
默认情况下,这两个变量的赋值语句都被注释掉了,去掉他们的注释即可:
随后,再启动引擎编辑器,截帧,即可看到可读的shader代码了:
可能不是必要的步骤*:设置为Debug?
因为之前有听到说法是,需要将VS解决方案的配置(原始的这个窗口可能较短,变长的方法见【附录】)
从
改为
可我换了以后没看到对这个问题有帮助。最后发现只要设置了r.Shaders.Optimize
和r.Shaders.KeepDebugInfo
,那么就算在Development下也能看到可读的shader代码。
所以暂时认为Debug可能不是必要步骤。
不过,设置为Debug可能在其他方面有帮助,所以我暂时记录下遇到的问题。
换过去之后启动后遇到问题:
在 这里 看到了解决方法,即先找一个能进去的模式然后点 File > Cook Content for Windows
等待Cook完成:
随后再换成Debug启动,就看不到这个报错了。
附录:让解决方案配置窗口变长一些
在《修改VS2017解决方案配置窗口宽度》中找到了方法:文章来源:https://www.toymoban.com/news/detail-405006.html
工具>自定义
命令>工具栏中选“标准”
选择“解决方案配置”
点击“修改所选内容”
修改宽度,之后点确定。
文章来源地址https://www.toymoban.com/news/detail-405006.html
到了这里,关于尝试使用RenderDoc查看UE的Shader代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!