羽轩的速查手册~

本文深入探讨Unity Shader中双面渲染与透明渲染的实现方法,包括使用Pass进行正反面渲染,以及透明度测试与混合的技术细节。通过调整属性、设置标签和混合模式,实现高质量的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

双面渲染:

两个Pass,1.一个渲染正面,2.一个渲染背面

Pass{
Cull Back  //关闭背面渲染(就是渲染正面)
。。。巴拉巴拉。。。
}
pass{
Cull front  //关闭正面渲染(就是渲染背面)
。。。巴拉巴拉。。。
}

透明渲染:

透明度测试:

   《unityshader入门精要》8.3

1.声明一个阈值,2.设置标签,3.在片元着色器中使用Clip函数

Properties {
    _Cutoff ("Alpha Cutoff", Range(0, 1)) = 0.5
    。。。巴拉巴拉。。。
}
SubShader {
		Tags {  "Queue"="AlphaTest" //设置渲染队列为透明度测试
                "IgnoreProjector"="True" //不受到投影器(Project)的影响
                "RenderType"="TransparentCutout"  //把shader提前归入到组 
        }

        Pass {
                。。。巴拉巴拉。。。
              fixed4 frag(v2f i) : SV_Target {
                clip (texColor.a - _Cutoff);
                。。。巴拉巴拉。。。
                }
}
		

透明度混合:

《unityshader入门精要》8.4

1.声明一个控制透明的属性,2.添加标签,3.关闭深度写入,设置混合模式,4.设置透明通道返回值,

5.如果有自身遮挡,就多加一个Pass用来开启深度写入

Properties {
        _AlphaScale ("Alpha Scale", Range(0, 1)) = 1
        。。。巴拉巴拉。。。
	}
SubShader {
		Tags {"Queue"="Transparent" 
              "IgnoreProjector"="True" 
              "RenderType"="Transparent"
          }
Pass{    ZWrite On   //开启深度写入
         ColorMask 0  //颜色遮罩,不输出颜色(RGBA0)
}
Pass {
			Tags { "LightMode"="ForwardBase" }
			ZWrite Off
			Blend SrcAlpha OneMinusSrcAlpha
               。。。巴拉巴拉。。。


            fixed4 frag(v2f i) : SV_Target {
                     。。。巴拉巴拉。。。
		    return fixed4(ambient + diffuse, texColor.a * _AlphaScale);
                }


    }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值