前言: 接触unity也好几年了 对于shader的个人理解相关的书和博客也看了好多,实际动手的时间并不是很多,看了其他大佬介绍的知识文章,渲染流程,空间转换,这类的一般都是在介绍之前会看到的。个人觉得还是先动手在慢慢 学习中一步一步的理解,带着功能的目的去学习, shader挺起来多高端的,入门先就先看一堆的知识介绍,新手可能觉得搞得自己头大了。

现在开始自己带着做shader实现功能的方式去学习,个人觉得学起来会有动力和挑战一些。

第一个先实现一个纯色的shader可以自定义输入想要的颜色控制模型的颜色。

 

unity shader学习笔记(1):pureshader(纯色shader)

unity shader学习笔记(1):pureshader(纯色shader)

 


Shader "long/PureColor"
{
    //属性定义
    Properties
    {
        //定义一个颜色属性 用于自定义动态控制颜色变化
        _MainColor("Color", Color) = (1,0,0,1)
    }

    SubShader {
        PASS{
        //CG入口代码标识
        CGPROGRAM
        #pragma vertex vert//vert函数声明
        #pragma fragment frag//frag函数声明
        #include "UnityCG.cginc" //引入unity自带shader库文件
        fixed4 _MainColor;//再次申明 上面属性定义内的 颜色属性 下面才可以使用,shader语法要求,必须再次声明

        //传入参数 模型的顶点信息 POSITION表示语意   必要的显示物体位置
        fixed4 vert(float4 pos:POSITION):POSITION{
            //模型空间转换   到视图空间    
            return UnityObjectToClipPos(pos);      
        }

        float4 frag():COLOR{
        //返回输入的颜色
            return _MainColor;
        }
        ENDCG
        }
    }
    FallBack "Diffuse"
}
 

相关文章: