首页 > 其他分享 >shader调试

shader调试

时间:2023-01-29 23:14:20浏览次数:67  
标签:MainTex fixed4 uv vertex shader v2f 调试

简单点就是将要调试的值输出为颜色

1) 比如:调试顶点值时,将顶点值输出为颜色

Shader "My/VertexDebug"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
                fixed4 localPos : COLOR;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.localPos = v.vertex;
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                //fixed4 c = tex2D(_MainTex, i.uv);
                fixed4 c = fixed4(0, 0, 0, 1);
                c.xy = i.localPos.xy;
                return c;
            }
            ENDCG
        }
    }
}

效果图

 

 

2) 调试uv值时,将uv值输出为颜色

Shader "My/UVDebug"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 c = fixed4(0, 0, 0, 1);
                c.xy = i.uv;
                return c;
            }
            ENDCG
        }
    }
}

uv(0, 0)绘制在index0处,uv(1, 0)绘制在index1处, uv(1, 1)绘制在index3处, uv(0, 1)绘制在index2处

 

使用RenderDoc调试

1) 下载地址:RenderDoc

2) 安装完后,在Scene和Game视图都会有一个捕获当前画面的按钮

每次抓取后就可以开始调试了,双击抓取到的画面

切换到Pipeline State页签,在时间轴上拖动找到要调试的shader

切换到Mesh Viewer页签,就可以看到shader的变量信息了

 

标签:MainTex,fixed4,uv,vertex,shader,v2f,调试
From: https://www.cnblogs.com/sailJs/p/17072792.html

相关文章

  • gdb同时调试python和c++
    说明:当我们的python程序的一些函数的后端实现为C++时(比如Pytorch,TensorFlow或tvm等)可以使用当前方法调试。有两种方式可以安装调试环境:一.搭建环境有两种方式搭建......
  • Python和C++联合调试
     python和c++分别在Linux和Windows下联合调试首先创建一个python测试项目和一个c++拓展项目一、在Windows下进行调试1.编译器安装2.C拓展模块安装3.调试......
  • ubuntu下C++如何调用python程序,gdb调试C++代码
    Linux下gdb调试C++代码:http://jingyan.baidu.com/article/acf728fd464984f8e410a369.html主要ubuntu下使用C++调用Python:#python代码:(processing_module.py)importcv2......
  • 为什么我推荐接口调试一定要用Apipost?
    作为一名Java后端开发工程师,对Swagger、Postman、RAP这些工具再熟悉不过了,它们为我们的接口开发工作带来了很多的便捷,不过因为这些都是独立的框架,之间并不存在互通性,因此在......
  • GDB多进程调试
    内容来自牛客C++高薪面试项目2.5节,视频链接:https://www.nowcoder.com/study/live/504/2/5命令简介使用GDB调试的时候,GDB默认只能跟踪一个进程,可以在fork函数调用之......
  • Windows上使用VSCode结合mingw编译和调试C程序
    Windows上使用VSCode结合mingw编译和调试C程序目标是在Win7上,用VSCode使用mingw调试C程序.要设置终端为bash.exe.Windows7已经安装了VSCode(及相关插件),MSYS64,......
  • VScode中调试Unity【Debugger for Unity】
    我遇到的情况:在点击运行和调试时,出现中间栏让你选择调试器,我点击UnityDebugger没反应。单击创建Launch文件也无效,没有UnityDebugger的选项删除.vscode/launch.json如......
  • (调试)图像调试基本术语
    图像调试基本术语镜头光学镜头光学焦距与光轴平行的光线射入到凸透镜时,理想的镜头应该是所有的光线聚集到一点,再以锥形扩散开来,这个聚集所有光线的一点,就叫做焦点。焦点......
  • fiddler动态调试js
    背景 昨天获取到的网易云音乐站点的请求内容居然是加密的,就需要动态的调试js找出params很secSeky未加密之前的内容。调试方法 调试之前需要在目标浏览器上部署上fi......
  • 1584_AURIX_TC275_SMU的调试以及部分寄存器
    全部学习汇总:​​GreyZhang/g_TC275:happyhackingforTC275!(github.com)​​前面学习的过程中,突然间减速了不少。但是为了保证学习的推进,还是得有每天的稳定输出。我......