Unity_Shader学习笔记_02_透明度测试,透明度混合,半透明.shader入门精要

这篇博客详细介绍了Unity中Shader的透明度测试和透明度混合。通过clip函数实现透明度裁剪,讲解了透明物体的渲染类型和 Blend 操作。内容涉及透明度混合的原理,如何处理深度写入和遮挡关系,以及双面透明度渲染的实现,旨在帮助读者深入理解Unity Shader中的透明效果处理。

关于透明度测试,主要是通过clip函数来实现裁剪功能
函数:void clip(float4 x);void clip(float3 x);void clip(float2 x);void clip(float x).
如果指定的一个参数为负数,就会舍弃当前像素的输出颜色
SubShader {
Tags {“Queue”=“AlphaTest” “IgnoreProjector”=“True” “RenderType”=“TransparentCutout”}

	Pass {
		Tags { "LightMode"="ForwardBase" }
		...
		...
		fixed4 frag(v2f i) : SV_Target {
		...
		clip (texColor.a - _Cutoff);
        ...
        }
        
        这里就是通过对该像素采样后的alpha通道来进行alpha测试,来决定该像素是否参与渲染。

透明度混合:简单理解,就是加了alpha通道混合,来实现透明度->a通道为1就不透明,为0就透明的线性计算。
在这里插入图片描述
这里列的都是要注意的地方:
SubShader {
Tags {“Queue”=“Transparent” “IgnoreProjector”=“True” “RenderType”=“Transparent”}


Pass{

Blend SrcAlpha OneMinusSrcAlpha

}
这里是要设置两个比较重要的参数,一个是设置alpha,一个是原本的材质,其实说白了,就是photoshop里,调透明度的效果,设置的alpha与原本的材质混合,得到的就是ps里设置的alpha(透明度效果)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值