使用alpha参数创建透明效果

作者:追风剑情 发布于:2015-8-27 23:10 分类:Shader

一、准备一张黑白图片512x512像素

huidu.png

一、创建LambertAlpha.shader和LambertAlpha.mat

  1. Shader "Custom/LambertAlpha" {
  2. Properties {
  3. _MainTex ("Base (RGB)", 2D) = "white" {}
  4. _TransVal ("Transparency Value", Range(0, 1)) = 0.5
  5. }
  6. SubShader {
  7. Tags { "RenderType"="Opaque" }
  8. LOD 200
  9. CGPROGRAM
  10. #pragma surface surf Lambert alpha
  11.  
  12. sampler2D _MainTex;
  13. float _TransVal;
  14.  
  15. struct Input {
  16. float2 uv_MainTex;
  17. };
  18.  
  19. void surf (Input IN, inout SurfaceOutput o) {
  20. half4 c = tex2D (_MainTex, IN.uv_MainTex);
  21. o.Albedo = c.rgb;
  22. o.Alpha = c.r * _TransVal;//Alpha = 红色通道值r * 转换值
  23. }
  24. ENDCG
  25. }
  26. FallBack "Diffuse"
  27. }


二、向场景中添加Sphere、Plane,如图:

h1.png

效果

hhhhhhhhhh.png

标签: Shader

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号