卡通渲染效果shard-2

来源:互联网 发布:vscode自动补全快捷键 编辑:程序博客网 时间:2024/04/28 23:12
  1. Shader "Hidden/RenderNormalsAndDepth" {  
  2. SubShader {  
  3.  Tags { "RenderType"="Opaque" }  
  4.  Pass {  
  5.   Fog { Mode Off }  
  6.     
  7. CGPROGRAM  
  8. #pragma vertex vert  
  9. #include "UnityCG.cginc"   
  10. struct v2f {  
  11.  float4 pos : POSITION;  
  12.  float4 color : COLOR;  
  13. };  
  14. v2f vert( appdata_base v ) {  
  15.  v2f o;  
  16.  o.pos = mul(glstate.matrix.mvp, v.vertex);  
  17.  float3 viewNormal = mul((float3x3)glstate.matrix.invtrans.modelview[0], v.normal);  
  18.  o.color.rgb = viewNormal * 0.5 + 0.5;  
  19.  float z = mul((float3x4)glstate.matrix.modelview[0], v.vertex).z;  
  20.  o.color.a = -z / _ProjectionParams.z;  
  21.  return o;  
  22. }  
  23. ENDCG  
  24.  }  
  25. }   
  26. }