现实生活中有许多半透明的情形:玻璃、饮料瓶、塑料袋等等。半透明一个很重要的特点就是可以显示它后面的物体的部分颜色。这个“部分”具体是多少我们常用透明度来表示。
一个简单的透明例子
想做出透明效果,第一步需要通知Shader我们要使用透明效果了。最简单的方法是在#pragma后面增加一个alpha参数,例如#pragma surface surf Lambert alpha。
开启透明后,只要对SurfaceOutput的Alpha分量赋值就可以了,范围是[0,1],下面是一个简单的透明Shader:
Shader "Custom/SimpleAlpha" {
Properties {
_MainColor ("Main Color", Color) = (1, 1, 1, 1)
_MainTex ("Base (RGB)", 2D) = "white" {}
_Alpha ("Alpha", Range(0, 1)) = 0.5
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert alpha
fixed4 _MainColor;
sampler2D _MainTex