Shader "Custom/SurfaceStudy"
{
Properties
{
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.5 //用于物体高光部分
_Metallic ("Metallic", Range(0,1)) = 0.0
}
SubShader
{
//渲染类型 这里是不透明物体 渲染队列(添加的) 透明渲染队列
Tags { "RenderType"="Opaque" "Queue" = "Transparent"}
LOD 200
CGPROGRAM
//shader类型 方法名(可修改) 光照模型 其他 (这里添加了透明度指令)
#pragma surface surf Standard fullforwardshadows alpha
//硬件渲染版本
#pragma target 3.0
//properties中的变量声明
sampler2D _MainTex;
half _Glossiness;
half _Metallic;
fixed4 _Color;
//input结构体 里面存储纹理的uv坐标 变量名格式:uv_ + 纹理变量名
struct Input
{
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutputStandard o)
{
//tex2D方法:根据指定纹理的uv坐标对纹理进行采样
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb; //漫反射颜色
o.Alpha = c.a; //透明度
//金属质感度 高光光泽度
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
}
ENDCG
}
//TIP:fallback会自动生成阴影,删除则没有阴影,但可以用addshadow指令添加阴影
FallBack "Diffuse"
} 作者:新时空 https://www.bilibili.com/read/cv13723443 出处:bilibili
Unity Surface Shader语法结构
最新推荐文章于 2024-09-24 16:38:07 发布