美文网首页
shader基础知识

shader基础知识

作者: SeanLink | 来源:发表于2023-10-24 09:41 被阅读0次

    创建shader

    image.png

    shader中的一些属性

    Properties
    {
        //属性中的一些变量类型
        _Color("Color",Color) = (1,1,1,1)
        _Int("Int",Int) = 1
        _Float("Float",Float) = 1
        _Range("Range",Range(1,10)) = 6
        _Vector("Vector",vector) = (1,1,1,1)
        _2D("Texture",2D) = "Red"
        _3D("Texture",3D) = "Black"
        _Cube("Cube",Cube) = "white" {}
        _MainTex ("Texture", 2D) = "white" {}
    }
    

    Pass 着色

     Pass
            {
                CGPROGRAM
                //定点着色器 声明  函数名
                #pragma vertex vert
                //片元着色器 声明 函数名
                #pragma fragment frag
                // make fog work
                #pragma multi_compile_fog
                //导入unity自带的库
                #include "UnityCG.cginc"
    
                //重新定义  上面变量如果要使用必须在这里重新定义
                fixed4 _Color;
    
                 //结构体 定义一些变量
                struct av2 //一个请求到顶点着色器
                {
                    float4 vertex : POSITION; //顶点信息
                    float3 normal:  NORMAL; //法线信息
                    float2 texcoord : TEXCOORD0; // 第一套UV
                };
            
                struct v2f //顶点信息到片元着色器
                {
                    // 裁剪空间的位置信息
                    float4 pos : SV_POSITION;
                    fixed3 color: COLOR0;
                };
    
                //sampler2D _MainTex;
                //float4 _MainTex_ST;
                //POSITION 顶点信息到裁剪空间顶点信息 函数实现 对应上面有声明
                v2f vert (appdata v)
                {
                    v2f o;
                    o.pos = UnityObjectToClipPos(v.vertex); //顶点信息 ----- 到裁剪空间信息的变换 
                    o.color = v.normal * 0.5 + fixed(0.5,0.5,0.5); //颜色信息存储
                    return o;
                }
                //SV_Target 帧缓存 片元着色器
                fixed4 frag (v2f i) : SV_Target
                {
                    fixed3 c = i.color;
                    c*=_Color.rgb;
                    return fixed4(c,1);
                }
                ENDCG
            }
    

    Tags 标签类型


    image.png

    顶点着色器


    image.png

    片元着色器


    image.png

    片元的比顶点的要消耗性能, 像素级别

    相关文章

      网友评论

          本文标题:shader基础知识

          本文链接:https://www.haomeiwen.com/subject/cbgqpdtx.html