cartoonShader学习

来源:互联网 发布:网络推广软文怎么写 编辑:程序博客网 时间:2024/06/07 13:35

突然发现自己没有记笔记的习惯,特此开个博客纪录下自己的成长,天道出勤,自强不息。

Shader "Unlit/cartoonShader"{Properties{_MainTex ("Texture", 2D) = "white" {}_Color("color",COLOR)=(0.5,0.5,0.5,0.5)_Gloss("Gloss",float)=0_SpecularColor("SpecularColor",COLOR)=(1,1,1,1)}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile_fog#include "UnityCG.cginc"#include "Lighting.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;float3 normal:NORMAL;};struct v2f{float2 uv : TEXCOORD0;UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;float3 worldNormal:TEXCOORD1;float3 worldLightDir:TEXCOORD2;};sampler2D _MainTex;float4 _MainTex_ST;float _Gloss;float4 _Color;float4 _SpecularColor;v2f vert (appdata v){v2f o;o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);o.worldNormal=normalize(mul(v.normal,(float3x3)_World2Object));float3 worldPos=mul(_Object2World,v.vertex);o.worldLightDir=normalize(_WorldSpaceLightPos0.xyz);o.uv = TRANSFORM_TEX(v.uv, _MainTex);UNITY_TRANSFER_FOG(o,o.vertex);return o;}fixed4 frag (v2f i) : SV_Target{float halfLight=(dot(i.worldNormal,i.worldLightDir)*0.5+0.5);fixed3 ambient=UNITY_LIGHTMODEL_AMBIENT.xyz;float3 viewDir=normalize(_WorldSpaceCameraPos.xyz-i.vertex);fixed3 halfDir=normalize(i.worldLightDir+i.worldNormal);float3 specular=pow(max(0,dot(i.worldNormal,halfDir)),_Gloss)*_SpecularColor;fixed3 col = tex2D(_MainTex,float2(halfLight,halfLight))*_LightColor0.xyz*_Color+ambient+specular;UNITY_APPLY_FOG(i.fogCoord, fixed4(col,1));return fixed4(col,1);}ENDCG}}}



原创粉丝点击