Unity使用Shader控制物体材质的透明度(Lambert版和非光照版)

本文介绍如何在Unity中通过Shader控制物体材质的透明度,包括基于Lambert光照模型的透明效果以及不接受光照的透明实现方法。
摘要由CSDN通过智能技术生成
<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 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值