【猫猫的Unity Shader之旅】之透明材质

本文介绍了如何在Unity中实现透明效果,包括通过开启透明和使用AlphaTest两种方法。通过调整Shader的Alpha值和渲染顺序,解决透明物体被遮挡的问题。AlphaTest则根据贴图的透明度进行裁剪,实现不透明和透明的切换,但其在移动设备上的效率较低。透明材质在游戏开发中有广泛应用,但也需要注意性能开销。
摘要由CSDN通过智能技术生成

  现实生活中有许多半透明的情形:玻璃、饮料瓶、塑料袋等等。半透明一个很重要的特点就是可以显示它后面的物体的部分颜色。这个“部分”具体是多少我们常用透明度来表示。

一个简单的透明例子

  想做出透明效果,第一步需要通知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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值