透明度测试-AlphaTest
透明度测试
依据透明度把指定的像素块剔除掉。
Shader "QStudyShader/AlphaTest"
{Properties{_MainTex("Main Texture",2D) = "white"{}_BaseColor("Base Color",Color) = (1.0,1.0,1.0,1.0)_Alpha("Alpha Threshold",Range(0,1)) = 0}SubShader{//"Queue"可以无视物体实际的位置,随意控制哪个物体显示在前面。渲染队列的值越小 越先被渲染 越先被渲染就会被后渲染的对象挡住//"Queue" = "AlphaTest" 指定渲染队列 使这个对象在其他物体渲染后再渲染 //"IgnoreProjector"="True" 忽略投影器的影响Tags{"Queue" = "AlphaTest" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout"}Pass{Tags{ "LightModel" = "ForwardBase"}CGPROGRAM#pragma include "Lighting.cginc"#pragma vertex Vertex#pragma fragment Fragmentstruct a2v{float4 vertex : POSITION;float3 normal : NORMAL;float4 texcoord : TEXCOORD0;};struct v2f {float4 pos : SV_POSITION;float3 worldNormal : TEXCOORD0;float3 worldPos : TEXCOORD1;float2 uv : TEXCOORD2;};sampler2D _MainTex;fixed4 _BaseColor;fixed _Alpha;v2f Vertex(a2v v) {v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.worldNormal = UnityObjecToWorldNormal(v.normal);o.worldPos = mul(unity_ObjectToWorld,v.vertex);o.uv = v.texcoord;return o;}fixed4 Fragment(v2f i) : SV_TARGET{fixed3 worldNormal = normalize(i.worldNormal);fixed3 lightDir = normalize(UnityWorldSpaceLightDir(v.worldPos));fixed4 texColor = tex2D(_MainTex,i.uv);//将透明度低于_Alpha的剔除掉clip(texColor.a - _Alpha);fixed3 albedo = texColor.xyz * _BaseColor.xyz;fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz * albedo;fixed3 diffuse = _LightColor0.xyz * albedo * saturate(dot(worldNormal, lightDir));return fixed4(diffuse + ambient, 1.0);}ENDCG}}
}
透明度测试-AlphaTest相关推荐
- Unity_Shader学习笔记_02_透明度测试,透明度混合,半透明.shader入门精要
关于透明度测试,主要是通过clip函数来实现裁剪功能 函数:void clip(float4 x);void clip(float3 x);void clip(float2 x);void clip( ...
- html透明度_Unity透明效果-透明度测试
在之前的记录中已经知道了透明度测试的原理.本节主要就在Unity中通过透明度测试实现透明效果进行实践. 原理回顾 透明度测试采用一种"非舍即留"的机制,即,若某片元的透明度不满足条 ...
- 【Unity Shader】实现透明度测试和透明度混合
本篇开始将进行<入门精要>初级篇最后一部分的学习,完成透明效果的学习. 1 Unity中实现透明效果的方法 一个像素的RGBA参数中的最后一项A指的就是透明度Alpha.在之前的实践中,一 ...
- unity shader学习---透明度测试,透明度混合
unity实现透明效果 效果图 理论 Alpha Test Alpha Blend 改进 开启深度写入的半透明效果 双面渲染的透明效果 代码部分 效果图 Alpha Test Alpha Test W ...
- Shader-透明效果-透明度测试
深度缓冲: 渲染每个物体,会将深度值写入深度缓冲. ZWrite: Controls whether pixels from this object are written to the depth ...
- unity物体设置透明度_URP自学笔记5. 透明度混合与透明度测试
1.概述 本节中我们回顾一下两种透明方法,透明度混合与透明度测试.透明度混合用于实现半透明,透明度测试则用于实现消融效果之类"消失"效果. 2.透明度混合 透明度混合是一种混合方式 ...
- 【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/41923661 作者:毛星云(浅墨) ...
- 【Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/41923661 作者:毛星云(浅墨) ...
- 【Unity3D Shader编程】之四 热带雨林篇 剔除 深度测试 Alpha测试以及基本雾效合辑
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 本系列文章由@浅墨 ...
最新文章
- 20145324 《信息安全系统设计基础》第十周学习总结
- hdu4814 模拟(黄金分割进制转换)
- DCMTK:类OFList和OFListIterator的测试程序
- densepose安装_基于DensePose的姿势转换系统,仅根据一张输入图像和目标姿势
- 计算机信息导论论文,电子信息导论论文2000字
- Oracle 常用sql场景应用(未完待续......)
- 处理有外键约束的数据
- Java中的析构方法finalize
- python写安卓app控制蓝牙_Python脚本利用adb进行手机控制的方法
- 11.收货地址模块-新增收货地址①
- 史上最全天气数据接口包括环境、气象、预警、水文、预报、实况、格点,落区、等值面、雷达、云图、空气质量实况及预报、气候统计、雷电分布、灾害性天气、短临预报、航空气象、农业气象、旅游气象、生活指数等
- 反向代理负载均衡之APACHE
- 自动控制系统的典型环节
- HTTP 503 error
- Win7下硬盘安装Ubuntu-16.04 LTS教程
- 使用树莓派进行pH测定
- ArcBlock冒志鸿:区块链3.0时代最先应用于政府服务体系|筱静观察
- 第三篇 IT 技术支持工程师职业发展路径与技能要求
- SCA在得物DevSecOps平台上应用​
- 微信里的APK链接接打不开怎么办?微信扫描二维码下载APK的解决方案