UnityShader个人学习笔记

UnityShader学习笔记

各种基本上手

  1. 基本的格式
Shader"UnityShaderForLSH/DemoShader1"{
   Properties{
       
   }
   SubShader{
       Pass{
           CGPROGRAM
           #pragma vertex vert
           #pragma fragment frag

           ENDCG
       }

       //else Pass
   }
   //else SubShader
}
  1. 跟着教程走就行,而后我们注意下这个函数
 #include "UnityCG.cginc"
  appdata_full
  其含义为:
  struct appdata_full {
    float4 vertex : POSITION;
    float4 tangent : TANGENT;
    float3 normal : NORMAL;
    float4 texcoord : TEXCOORD0;
    float4 texcoord1 : TEXCOORD1;//第二纹理坐标
    float4 texcoord2 : TEXCOORD2;//第三纹理坐标
    float4 texcoord3 : TEXCOORD3;//第四纹理坐标
    fixed4 color : COLOR;//顶点颜色
    UNITY_VERTEX_INPUT_INSTANCE_ID
};

提供了很多现成的东西去使用
唯一不足的是这个UnityCG.cginc是放在我们的Unity安装目录下的,而不是项目下。不能Ctrl+左键定位,查看比较麻烦。(倒也方便后续魔改)

//所以代码会变得简单,例子:
Shader"UnityShaderForLSH/DemoShader1"{
   Properties{

   }
   SubShader{
       Pass{
           CGPROGRAM
           #pragma vertex vert
           #pragma fragment frag

           #include "UnityCG.cginc"
           //appdata_full 

           struct v2f{
               float4 pos:SV_POSITION;
               fixed3 color:COLOR0;
           };
           v2f vert(appdata_full v){
               v2f o;
               o.pos = UnityObjectToClipPos(v.vertex);
               //o.color = v.normal*0.5+fixed3(0.5,0.5,0.5);
               o.color = v.normal*0.7;
               return o;
           }
           fixed4 frag(v2f i) : SV_TARGET{
               return fixed4(i.color,1.0);
           }
           ENDCG
       }

       //else Pass
   }
   //else SubShader
}

  1. 语义
//不懂就查
https://docs.unity.cn/cn/2018.4/Manual/SL-ShaderSemantics.html
  1. 色彩查询器 ColorPicker 和 帧调试器
    在这里插入图片描述

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值