Unity Shader(固定管线着色器)

 固定管线着色器(SubShader中必须写Pass通道)

        Shader指令顺序图

                

        Rander Setup

                Properties

Properties

浮点数(Float) _FloatValue("一个浮点数",float) = 0.4
范围浮点数(Range) _RangeValue("一个范围浮点数",Range(1,100)) = 50
四维数(Vector) _VectorValue("一个四维数",Vector) = (1,1,1,1)
颜色(Color) _ColorValue("一个颜色值",Color) = (1,0,0,1)
2阶贴图(2D) _Texture2D("一个2阶贴图",2D) = ""{}
非2阶贴图(Rect) _TextureRect("一个非2阶贴图",Rect) = ""{}
立方体贴图(Cube) _TextureCube("一个立方体贴图",Cube) = ""{}

                Color

固定渲染一个颜色():Color(0,0,0.6,1)
固定渲染一个可变颜色[]:Color[_MainColor]

                Material

前提 需要开启顶点光照      →      Lighting On/Off(开启/关闭顶点光照)

Material

漫反射颜色(Diffuse)
环境光反射颜色(Ambient)

前提:需要开启镜面反射(SeparateSpecular On | Off)

光泽度(Shininess)

高光颜色(Specular)
自发光颜色(Emission)

                设置多边形剔除

                        Cull Back/Front/Off

                深度测试(判断该模型的深度,满足时渲染模型)

                        前提:需要写入深度缓冲

ZWrite On | Off On(开启的话,如果满足判断就只会渲染模型框架不会渲染颜色)
Off(关闭的话,如果满足判断即可渲染模型也可渲染颜色)

                        ZTest

ZTest Less(小于)、LEqual(小于等于)
Greater(大于)、GLqual(大于等于)
Equal(等于)、NotEqual(不等于)

Always(渲染所有像素。这在功能上等同于 AlphaTest Off。)

Never(不渲染任何像素)
        Pass
		{
			//  进行深度测试,当前像素的深度大于缓存里的深度
			//  说明当前像素在缓存像素的后面
			//  通俗来讲就是被挡住了
			ZTest Greater
			//  关闭深度缓存
			ZWrite Off

			//  被挡住渲染该颜色
			Color(1,0,0,1)
		}

		Pass
		{
			//  进行深度测试,当前像素的深度小于或等于缓存里的深度
			//  说明当前像素不在缓存像素的后面
			//  通俗来讲就是没有被挡住了
			ZTest LEqual
			
			//  没被挡住渲染该颜色
			Color(0,0,1,1)
		}

                 什么是深度?

顶点&像素距离摄像机的距离 距离越近深度越小
距离越远深度越大

                Blend(混合)

Blend(混合)

Alpha(混合):Blend SrcAlpha OneMinusSrcAlpha
相加:Blend One One
比较柔和的相加:Blend One OneMinusDstColor
乘法:Blend DstColor Zero
2倍乘法:Blend DstColor SrcColor
开启透明混合:Blend SrcAlpha OneMinusSrcAlpha

                Tags

SubShader标签Queue

测试需要关闭ZTest        
级别 1000 Background    后台
2000 Geometry    几何体(默认)
3000 Transparent    透明
4000 Overlay        覆盖
Tags{"Queue" = "Transparent+1"}

        TextureSetup

                 SetTexture[TexturePropertyName]{TextureBlock}

前提 Lighting On

stc【颜色源】

Primary是来自光照计算的颜色或是它绑定时的顶点颜色
Texture是在SetTexture中被定义的纹理的颜色
Previous是上一次Set Texture的结果
Constant是被ConstantColor定义的颜色 固定颜色:constantColor(1,1,1,1)

combine

暗:combine src1 * src2

亮:combine src1 + src2

       combine src1 - src2

combine src1 lerp(src2) src3
双倍/四倍————Double \ Quad
RGB与A分离

猜你喜欢

转载自blog.csdn.net/qq_24977805/article/details/122911853