VS2017下用Graphics Debugger调试UnityShader
来源:互联网 发布:js冒泡事件是什么意思 编辑:程序博客网 时间:2024/06/06 02:28
第一步,为shader加特殊代码
为需要断点的Shader加上 “#pragma enable_d3d11_debug_symbols”,如下所示:
Shader "Unlit/NewUnlitShader"{Properties{_MainTex ("Texture", 2D) = "white" {}}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag// make fog work#pragma multi_compile_fog#pragma enable_d3d11_debug_symbols //需要断点调试的Shader加上的#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;v2f vert (appdata v){v2f o;o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);UNITY_TRANSFER_FOG(o,o.vertex);return o;}fixed4 frag (v2f i) : SV_Target{// sample the texturefixed4 col = tex2D(_MainTex, i.uv);// apply fogUNITY_APPLY_FOG(i.fogCoord, col);return col;}ENDCG}}}
第二步,打包程序到PC平台,变为 exe 执行文件
第三步,打开VS2017,新建一个C++空项目,然后点击: 文件->打开->项目/解决方案,直接打开刚才打包出来的 test.exe 文件,得到的如下所示:
第四步,点击VS2017的开始调试图形功能,也就是: 调试->图形->启动图形调试(Alt+F5),得到下面的
然后点击开始的按钮,等进入游戏后,进行截屏,可以直接用截屏按钮或者点击捕获帧数,得到如下所示:
双击 10:35:47 的那帧画面,进入 debug 界面,如下所示:
在“呈现目标”面板选中一个像素,然后点击“”像素历史记录“”的面板的小绿色三角形按钮,可以进入VertexShader或者PixelShader 来断点查看具体的参数,如下所示:
最后还需要强调的问题
(1)注意打包的 exe 执行程序是在PC平台上的,因为PC平台上运行的是Directx11,而VS的Graphics Debugger就是为 Directx 的调试专用的。
(2)注意在需要断点调试的Shader加上 “‘#pragma enable_d3d11_debug_symbols”,不加的话,会在查看VertexShader或者PixelShader的具体参数时跳出下面这个异常:
这跟我的另外一篇博客其实是一个样(VS2015环境下)用Visual Studio Graphics Debugger调试Shader。
以后可能会很少写博客了,因为太浪费时间了。
阅读全文
0 0
- VS2017下用Graphics Debugger调试UnityShader
- (VS2015环境下)用Visual Studio Graphics Debugger调试Shader
- Unity3D Shader之路 VS2015下Graphics Debugger调试Shader
- Unity3D Shader之路 VS2015下Graphics Debugger调试Shader
- Visual Studio Graphics Debugger(调试Shader)
- 调试图形(Shader)程序的实战演练,运用普通调试和Visual Studio Graphics Debugger(在VS2015环境下)
- vs2017下linux远程调试经验
- Visual Studio Graphics Debugger
- Mali Graphics Debugger使用
- debugger调试
- 用Web App Debugger简单调试ISAPI
- VS2017远程调试
- VS2017调试闪退
- Postgresql debugger 安装方法(postgresql 下如何调试存储过程)
- Tools——Mali Graphics Debugger
- vs2010调试 visualizer debugger
- Python 调试器debugger
- JS 调试 debugger
- 20171031
- hbase shell指令
- 旋转矩阵,欧拉角,四元数,旋转向量(轴-角)
- C++中的4种cast学习(static_cast, const_cast, dynamic_cast, reinterpret_cast)
- Java 中的 new 和 C++ 中的 new 的区别
- VS2017下用Graphics Debugger调试UnityShader
- numpy 的属性 (一)
- JavaWeb-JSP
- Python 3.5基础学习(一) ----更新
- 每日一练20171031
- 老程序总结的开发小技巧
- Java中方法传递
- Ubuntu每次开机后提示:检测到系统程序出现问题的解决方法
- 转载:Python高级特性 可迭代对象(Iterable) & 迭代器(Iterator)