<pre name="code" class="cpp">Shader "Custom/MyShader_Two" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {} //接收的纹理
_TransVal ("Transparency Value", Range(0,1)) = 1 //透明度的值
_ColorTint("Shine(RGB)",color) = (1,1,1,1)//增强颜色
}
SubShader {
Tags { "RenderType"="Opaque" "Queue"="Transparent"}
CGPROGRAM
//声明使用兰伯特光照模型,并且最后会使用setcolor设置颜色
#pragma surface surf Lambert alpha finalcolor:setcolor
//声明三种对应参数
sampler2D _MainTex;
float _TransVal;
float4 _ColorTint;
//输入参数
struct Input {
float2 uv_MainTex;
};
//声明颜色处理函数
void setcolor (Input IN, SurfaceOutput o, inout fixed4 color)
{
//将自选的颜色值乘给color
color *= _ColorTint;
}
//surf函数,处理部分
void surf (Input IN, inout SurfaceOutput
Unity使用Shader控制物体材质的透明度(Lambert版和非光照版)
最新推荐文章于 2022-08-06 09:46:19 发布
本文介绍如何在Unity中通过Shader控制物体材质的透明度,包括基于Lambert光照模型的透明效果以及不接受光照的透明实现方法。
摘要由CSDN通过智能技术生成